2016-09-11 4 views
-1

以下のクラスで構成され、クラスライブラリを有し、かつ、サーバサイド(WCF)とクライアント側(Windowsアプリケーション)アプリケーションの両方で共有:私は、クラスBのオブジェクトのみを要求した場合、それはエラーを返すC#のWCFのデシリアライズの問題

[DataContract] 
public class A 
{ 
    public A() 
    { 

    } 

    [DataMemeber] 
    public int A1 { get; set; } 

    [DataMemeber] 
    public string A2 { get; set; } 
} 

[DataContract] 
public class B 
{ 
    public B() 
    { 

    } 

    [DataMemeber] 
    public int B1 { get; set; } 

    [DataMemeber] 
    public string B2 { get; set; } 

    [DataContract] 
    public A B_A { get; set; } 
} 

プロパティB_AがNULLであるため(実際にはプロパティB_AはServerSideではNULLではない)、クライアント側で逆シリアル化できないためです。混乱は、私はWCFがそれを世話するべきだと思います。他のオブジェクトが必要な場合は、自動的に連動します。任意のアイデアpls?

ありがとうございました。

[DataContract] 
public A B_A { get; set; } 

は次のようになります:

答えて

1

あなたはこれがそうDataMember

でフィールドをマークする必要があり、それはタイプミスして

[DataMember] 
public A B_A { get; set; } 
+0

申し訳ありませんが、それは、それは実際には、データメンバー – Tim

+0

@Timとしてマークされていますいくつかの依存関係を扱うか、クラス内で例外が含まれているか、実際のコードを共有するか –