상속을 사용하는 일부 개체 클래스가 있습니다. 그것은 서비스에 의해 직접적으로 사용되는 객체에만 접근 할 수있는 것 같습니다. 제가 달성하기 위해 노력하고 무엇을 보여주지 :WCF 서비스에서 직접 사용할 수없는 개체 (DataContracts)를 표시 하시겠습니까?
[DataContract]
public class Object1
{
[DataMember]
int Id {get; set;}
}
[DataContract]
public class object2: Object1
{
[DataMember]
string Name {get; set;}
}
[DataContract]
public class object3
{
[DataMember]
int SomeNumber {get; set;}
}
본 서비스 :
public int GetId(object2 obj)
{
return GetTheId(object2.Name);
}
을 지금은 서비스에 object2 사용하고 있기 때문에, 오브젝트 1도 직렬화됩니다. Howerver, object3을 어떤 이유로 노출 시키길 원할 수도 있습니다. 그것은 전달해야만하는 파생 클래스가 될 수 있으므로 나중에 다른 프로세스에서 해당 유형을 확인할 수 있습니다. 나는이 객체가 직렬화되는 것을 보지 못했다. 나는 당신이 DataContract/DataMember를 설정할 때마다 그 객체들이 직렬화 될 것이라고 생각했다. 필요하지 않은 항목을 노출하는 문제가 발생할 수 있기 때문에 사용하지 않은 것을 노출하지 않는 것이 좋습니다. 서비스에서 직접 사용하지 않는 객체를 표시하는 가장 좋은 방법은 무엇입니까? 감사합니다
다니엘
그 속성에 대해 완전히 잊어 버렸습니다 !!! 감사. 그것이 내가 htis 상황에서 필요한 것입니다. 감사!!!!! – DDiVita
[ServiceKnownType]을 사용하여 서비스 계약을 장식 할 수도 있습니다. :) –