2011-01-15 14 views
0

私はAppFabricでクラスインスタンスをキャッシュしようとしていますが、空のメンバーを持つクラスインスタンスを返します。 理由は、DataContract属性です。 私のクラスは[Serializable]と [DataContract(Name = "TestClass"、Namespace = "CustomNameSpace.TestClass")]属性でマークされています。AppFabricのシリアル化の問題

DataMemberですべてのプロパティをマークするか、DataContract属性を削除すると問題が解決します。

しかし、他のシリアル化の必要性(jsonなど)のためにDataContract attributteを削除したくありません。あるいは、他のクラスにDataMember属性を追加したくありません。 (たくさんの)

あなたはその問題を解決するための考えを持っていますか?

ありがとうございました。

答えて

0

私のクラスでは、私はクラスの[Serializable]属性を使用していますが、メンバーには何もありません。それはappfabricキャッシュを持つ魅力のように動作します。

+0

はい私はすでにあなたが言ったことを試して、それは動作します。しかし私が言ったように、私はDataContact属性を削除したくないし、すべてのメンバーにデータメンバーをマークしたくない。ありがとう。 – mehmetilker

2

シリアル化エンジンのルールは、DataContractAttribueeのシリアル化を従来のSerializableAttributeに優先します。 DataContractAttributeでクラスをマークしたので、DCSを使用しようとします。クラスのDataContractAttributeをDataMemberAttributesプロパティに指定しなくても、シリアル化エンジンはルールに従うことを期待しているため、表示されているように、まったく役に立ちません。

これを機能させるための唯一のオプションは、対応するDataMemberAttributesをプロパティに適用するか、DataContractAttributeを削除することです。