2012-05-03 3 views
1

문제 Windows Server AppFabric 클러스터에 연결하는 두 개의 클라이언트 응용 프로그램 (하나의 노드 만 있음)이 있습니다. 클라이언트 1 Datetime 필드가있는 객체를 캐시에 배치합니다 (모든 엔티티는 다른 C# 클래스 라이브러리 프로젝트에 정의 됨). When 이 개체를 클라이언트 1을 통해 가져 오면 모든 것이 잘 보이지만 클라이언트 2를 통해 동일한 개체를 검색 할 때마다 datetime 필드는 01-01-0001 00:00:00으로 항상 설정됩니다. 그러나 DateTime 필드를 [DataMember] 특성으로 꾸미면 올바르게 작동합니다. 누군가가 무슨 일이 일어나는지 말해 줄 수 있습니까?AppFabric 캐시 - Get with

업데이트 : Client1은 WCF 서비스이고 클라이언트 2는 ASP.NET 응용 프로그램입니다. 사용 된 프레임 워크는 4.0입니다.

+0

클래스/필드를 표시 할 수 있습니까? –

답변

3

AppFabric은 NetDataContractSerializer을 사용하여 유형을 직렬화합니다. 해당 유형이 [DataContract]으로 장식 된 경우 [DataMember]으로 표시된 구성원 만 일련 화됩니다. 유형이 [DataContract]으로 장식되지 않은 경우 IIRC는 기본값이 BinaryFormatter이며, 즉 필드를 직렬화합니다.이 경우에는 [Serializable]을 원하지 않을 수도 있습니다.

그래서 형식이 데이터 계약이므로 들립니다. 그렇습니다. [DataMember]으로 표시해야합니다. 그렇지 않으면 모두 0으로 간주됩니다 (DateTime.MinValue, 01-01-0001 00:00:00)

관련 문제