如何使用通用方法传递回调数据

时间:2016-05-19 13:43:49

标签: c# web-services wcf serialization datacontractserializer

是否可以将通用对象传递给客户端,通用我的意思是任何使用DataContract。使用通用方式发送或接收不同类型的对象。此刻我有这样的事情: enter code here

 [DataContract]
[KnownType(typeof(Type1))]
[KnownType(typeof(Type2))]
[KnownType(typeof(Type3))]
public class Type
{
    [DataMember]
    private string id;
    public string ID
    {
        get { return id; }
        set { id= value; }
    }
}
[DataContract]
public class Type1: Type
{
    private SchoolData school;
    [DataMember]
    public SchoolData School
    {
        get { return school; }
        set { school= value; }
    }
}
[DataContract]
public class Type2: Type
{
    private TecherData techer;
    [DataMember]
    public TecherData Techer
    {
        get { return techer; }
        set { techer= value; }
    }
}
[DataContract]
public class Type3 : Type
{
    private StudentData student;
    [DataMember]
    public StudentData Student
    {
        get { return student; }
        set { student= value; }
    }
}
public interface ICallback
{
    [OperationContract(IsOneWay = true)]
    void CallbackData(Type object)
}

所以,我希望通过一般方式将type1 type2,type3发送到clent端,我想传递一个通用对象,因为我有大量的对象集合(Class Type1 / Type2 / Type)。 谢谢〜

1 个答案:

答案 0 :(得分:0)

如果我可以通过以下方式发送任何类型,它不是真正的“数据合同”:-)说实话,你真的想在这里重现Json - 发送动态构造的类型就是它的设计目的。数据合同用于静态定义的类型,您可以验证这些类型并将业务规则附加到。