2011-01-15 2 views
0

AppFabric으로 클래스 인스턴스를 캐시하려고하지만 빈 멤버가있는 클래스 인스턴스를 반환합니다. 이유는 DataContract 특성입니다. 내 클래스는 [Serializable] 및 [DataContract (Name = "TestClass", Namespace = "CustomNameSpace.TestClass")] 특성으로 표시되어 있습니다.AppFabric 직렬화 문제

DataMember를 사용하여 모든 속성을 표시하거나 DataContract 특성을 제거하면 문제가 해결됩니다.

하지만 다른 serialization 요구 (예 : json 또는 다른 것) 때문에 DataContract attributte를 제거하고 싶지 않습니다. 다른 클래스에 DataMember 특성을 추가하고 싶지 않습니다. (많이)

이 문제를 해결할 생각이 있습니까?

감사합니다.

답변

0

내 수업에서 나는 방금 클래스의 [Serializable] 속성을 사용했으며, 멤버에는 아무 것도 사용하지 않았습니다. appfabric 캐시가있는 매력처럼 작동합니다.

+0

예 이미 말씀 드린대로 해봤지만 작동합니다. 하지만 내가 말한대로 DataContact 특성을 제거하고 데이터 멤버가있는 모든 멤버를 표시하지 않으려합니다. 감사. – mehmetilker

2

직렬화 엔진의 규칙에 따라 DataContractAttribuee serialization이 레거시 SerializableAttribute에 우선합니다. DataContractAttribute 클래스를 표시 했으므로 DCS를 사용하려고합니다. 클래스에 DataContractAttribute를 지정하지 않고 DataMemberAttributes를 속성에 지정하지 않으면 직렬화 엔진이 규칙을 따르기를 기대하기 때문에 완전히 손상 될 수 있습니다.

이 작업을 수행하는 유일한 방법은 해당 DataMemberAttributes를 속성에 적용하거나 DataContractAttribute를 제거하는 것입니다.