0

我正在做一个项目,我必须使用 WCF 从客户端设备向服务器发送数据。该项目有一个已经开发的模型。模型中的所有类都是 SObject 的子类。

在同步项目中,我正在执行以下操作。

    [ServiceContract]    
public interface IMobileService
{

    [OperationContract]
    SynchronizeResponse Synchronize(SynchronizeRequest request);

    [OperationContract]
    SynchronizeResponse Checkout(CheckoutRequest request);
}

    [DataContract]
public class SynchronizeResponse
{
    [DataMember]
    public bool FullSync { get; set; }

    [DataMember]
    public IEnumerable<Student> Students { get; set; }

    [DataMember]
    public IEnumerable<Teacher> Teachers { get; set; }

    [DataMember]
    public IEnumerable<SObject> SObject { get; set; }}

和类 SynchronizeRequest 的相同类型的代码

它以这种方式工作。但是我怎样才能只发送包含所有子对象的 SObject?我在 SyncRequest 属性中尝试过 [KnownType(typeof(Student))]。但它抛出异常。

没有编辑模型,完成任务的最佳方法是什么。

4

1 回答 1

0

试试这个:(我想我能做的最好的,因为你没有提供所有的定义。

[DataContract]
[Serializable]
[KnownType(typeof(MyConcrete001))]
[KnownType(typeof(MyConcrete002))]
public abstract class SObject
{}
于 2013-09-27T21:18:32.393 回答