2011-04-19 2 views
0

Visual Studio 2010 솔루션에는 3 개의 프로젝트가 있습니다. 공유에는 ServiceResult이라는 단일 클래스가 포함되어 있습니다. 이 클래스는 DataContract(IsReference=true)으로, 각 속성은 DataMember으로 지정됩니다. 다음 프로젝트는 ServiceResult 형식을 반환하는 메서드가있는 WCF 서비스입니다. 세 번째 프로젝트는 WCF 서비스에 대한 서비스 참조가있는 명령 줄 응용 프로그램입니다. 여기에는 공유 프로젝트에 대한 참조도 있습니다.WCF DataContract 문제

DataContract 특성이 ServiceResult 클래스에있는 경우 어떻게 할지라도 콘솔 응용 프로그램에서 프록시 클라이언트를 얻지 못합니다. DataContract 특성을 Serializable 특성으로 바꾸고 서비스 참조를 새로 고치면 명령 줄 앱에서 프록시 클라이언트를 얻게됩니다.

객체 참조를 유지하기 위해 IsReference 속성을 이용하고자하므로이 클래스의 속성을 DataContract으로 지정하고 싶습니다.

누구나 전에 본 것과 같은 것을 본 적이 있습니까? 그렇다면 어떻게 해결 했습니까?

감사합니다.

나는 ServiceResult 클래스는 제네릭 형식입니다 추가해야합니다 :

[DataContract(IsReference=true)] 
public class ServiceReferences<TReturn>{...} 
+0

귀하의 서비스 또는 운영에 어떻게 그 계약을 사용합니까? –

답변

0

사실, 그는 내가 동시에 참조하는 동안은 일반 유형을 직렬화 할 수 몰랐어요하여 동일한 사용자 정의 유형 클라이언트 측. 클라이언트 프록시는 ServiceResultOfInt라는 유형을 사용하려고했지만 클라이언트 코드는 ServiceResult <int>을 사용하고있었습니다. 문제 해결됨. 그래도 고마워!

+1

다른 사람이이 문제가 해결되었음을 알 수 있도록이 답변에 동의 표시를하십시오. – lockstock

관련 문제