0

ネットリモーティングによる共有オブジェクトがあります。問題は、このオブジェクトにいくつかのEntitySet属性とEntityRef属性があることです。プログラムを実行しようとすると、EntitySetがSerializableとしてマークされていないという例外が発生します。シリアル化可能としてマークすると、すべて問題ないように見えますが、外部からEntitySetで表される属性にアクセスしようとすると、使用できません。

任意の提案をいただければ幸いです。

前もって感謝します。

ところで、tcpチャネルのデフォルトのバイナリシリアル化を変更する方法を知っている人はいますか?

4

3 に答える 3

0

個々の属性とプロパティもシリアル化可能としてマークするようにしてください。これにより、これらのプロパティにもアクセスできるようになります。

セット上のすべてのイベントもシリアル化する必要があることに注意してください。

于 2010-06-14T15:51:11.873 に答える
0

私は物事がここにあると思います:http: //msdn.microsoft.com/en-us/library/bb546184.aspx

EntitySetとシリアル化を扱う例があります。

于 2010-06-14T16:14:14.027 に答える
0

私はついに解決策に到達しました、説明させてください:

2つのテーブル間の関係を登録するためのLinqToSQL(たとえば、1:M)では、M側でEntitySetを宣言し、もう一方の側でEntityRefを宣言する必要があります。

私の場合、EntitySetを表すプライベート属性と、それを変更するためのパブリックアクセサーがあります。Linq to Sqlを考慮すると、DataContract(クラスの場合)およびDataMember(属性の場合)を介した明示的な装飾のシリアル化が必要です。問題は、プライベート属性ではなくパブリック属性を装飾したことです。

その後、すべてが揺れる!(私は多くの時間を失いましたが、多くのシリアル化を学びました)

于 2010-06-16T11:53:21.663 に答える