문제

나는 내 객체 목록을 내 서비스에 전달 해야하는 상황이있다.객체는 유형 요소가되어야합니다.나는 내 요소 인터페이스가 그렇게 정의되어

public interface IElement{ }
.

다음과 같이이 iElement 클래스를 상속받은 데이터 acacontract가 있습니다....에...에...에

[KnownType(typeof(Common.IElement))]
[DataContract]
public abstract class IPet : IElement
 {.....}
.

또한이 서비스 인터페이스에 대한 알려진 속성이 있습니다.

[ServiceContract(Name="Pets", SessionMode = SessionMode.Allowed)]
[ServiceKnownType(typeof(Memberships.PetServiceUser))]
[ServiceKnownType(typeof(.Common.IElement))]
[DeliveryRequirements(RequireOrderedDelivery=true)] 
public interface IPetService {.....}
.

문제점은 클라이언트 측에 있으면 클라이언트의 서비스 유형의 Deserialization에서 IElement 유형을 사용할 수 없습니다.내가 여기서 틀릴 수있는 것들이 있고 이것을 바로 잡는 것에 대해 어떻게 할 수 있는지 알 수 있습니까?

없음

도움이 되었습니까?

해결책

나는 여기서 할하려고 노력하고있는 모든 것을 이해하지 못하는 100 % 확신하지만, 그것은 나에게 거꾸로 보입니다.알려진 유형 속성을 사용하는 일반적인 방법은 파생 유형으로 기본 유형을 장식하는 것입니다.줄을 따라 무언가 :

[DataContract]
[KnownType(typeof(Pet))]
[KnownType(typeof(...
...
public class Element: IElement
{
....
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top