서버에서받은 datacontract 객체를 가져 와서 조작하고 조작 된 버전을 반환하지만 작동하지 않는 것 같습니다. KnownType 또는 ServiceKnownType 특성을 사용하여 작동하도록 할 수는 있지만 모든 데이터를 왕복 전송하지는 않습니다.WCF DataContract Upcasting
[DataContract]
public class MyBaseObject
{
[DataMember]
public int Id { get; set; }
}
[DataContract]
public class MyDerivedObject : MyBaseObject
{
[DataMember]
public string Name { get; set; }
}
[ServiceContract(Namespace = "http://My.Web.Service")]
public interface IServiceProvider
{
[OperationContract]
List<MyBaseObject> SaveMyObjects(List<MyDerivedObject> myDerivedObjects);
}
public class ServiceProvider : IServiceProvider
{
public List<MyBaseObject> SaveMyObjects(List<MyDerivedObject> myDerivedObjects)
{
... do some work ...
myDerivedObjects[0].Id = 123;
myDerivedObjects[1].Id = 456;
myDerivedObjects[2].Id = 789;
... do some work ...
return myDerivedObjects.Cast<MyBaseObject>().ToList();
}
}
누구는 어떻게 새로운 개체를 다시 만들 필요하거나 KnownType 속성을 사용하지 않고 작동하도록하는 아이디어가 : 아래의 예는?
IList가 정상적으로 보냅니다. 그것은 작동하지 않는 객체를 업 캐스트하려고 할 때입니다. 나는 모든 데이터를 왕복 여행하고 싶지 않다. –
사용자 지정 매핑 코드 또는 인터페이스를 사용해 볼 수 있습니다. –