1

在服务器端,我有两种类型的对象

   [DataContract]
    public class Tablo5 { 
      //common class
    }

    [DataContract]
    public class Tablo7 : Tablo5{
     [DataMember]
        public Double {get;set;}
    }
    public class Tablo8 : Tablo5{
     [DataMember]
        public Int32 {get;set;}
    }

我将他们的实例添加到List<Tablo5>网络服务并通过网络服务发送。在客户站点上,我想将其转换回Tablo7Tablo8使用。所以我们尝试发送它,我收到"Server NOT FOUND"错误。即使当我尝试登录服务器端时,直到return一切正常。你能提示一下发送投射对象的东西是错误的还是我在其他地方搞砸了?

4

1 回答 1

1

您的序列化程序需要知道 Tablo7 继承自 Tablo5 和 Tablo8 继承自 Tablo5 :

[DataContract(IsReference = true)]
[KnownType(typeof(Tablo7))]
[KnownType(typeof(Tablo8))]
public class Tablo5 { 
  //common class
}

[DataContract]
public class Tablo7 : Tablo5{
    [DataMember]
    public Double MyProp {get;set;}
}

[DataContract]
public class Tablo8 : Tablo5{
    [DataMember]
    public Int32 MySecondProp {get;set;}
}

在客户端刷新代理后

于 2013-06-11T09:53:58.367 回答