【问题标题】:how to use a generic way to pass callback data如何使用通用方式传递回调数据
【发布时间】:2016-05-19 13:43:49
【问题描述】:

是否可以将泛型对象传递给客户端,泛型是指任何具有 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 发送到客户端,我想传递一个通用对象,因为我有大量对象(Class Type1/Type2/Type)。 谢谢~

【问题讨论】:

    标签: c# web-services wcf serialization datacontractserializer


    【解决方案1】:

    如果我可以发送任何类型,它就不是真正的“数据契约”:-) 老实说,你真的想在这里重现 Json - 发送动态构造的类型是它的设计目的。数据协定适用于静态定义的类型,您可以对其进行验证和附加业务规则。

    【讨论】:

    • 非常感谢,对我很有帮助。
    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多