如何使用WCF发送基础对象中的所有对象

时间:2013-09-27 21:14:32

标签: c# wcf web-services

我正在开发一个项目,我必须使用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; }}

和Class SynchronizeRequest的相同类型的代码

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

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

1 个答案:

答案 0 :(得分:0)

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

[DataContract]
[Serializable]
[KnownType(typeof(MyConcrete001))]
[KnownType(typeof(MyConcrete002))]
public abstract class SObject
{}