1

サーバー側には2種類のオブジェクトがあります

   [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>Web サービス経由で送信します。クライアントサイトで、キャストして使用したいと思いTablo7ますTablo8。だから私はそれを送信しようとしましたが、"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 に答える