0

私は以下のようなDTOを持っています -

[Serializable()]
Public Class DTO
{
Public Exception ex {get;set;}
}

RIA サービスから DTO タイプのオブジェクトを渡すと、クライアント側でプロパティ ex が表示されません。この問題で私を助けてください。

4

1 に答える 1

0

補足として、例外をクライアント/サーバー間で直接送信する必要があるとは思いません。代わりに、適切な時点でそれらをキャッチし、受信側に送信する前に例外情報をより一般的なものに再フォーマットすることをお勧めします。

実際の問題としては、[Serializable] 機能の制限に達している可能性があります。MSDN の記事Serialization in Windows Communication Foundationには、次のように書かれています (ハイライトは私):

[Serializable] のデフォルトのマッピングは、XmlSerializer で使用されるマッピングとは異なります。ここでは、パブリックかプライベートかに関係なく、すべてのフィールドがマッピングに含まれ、プロパティは決して含まれません

シリアル化をサポートする独自のカスタム エラー クラスを実装する場合があります。

SO スレッドC# で例外オブジェクトをシリアル化する方法を参照してください。たとえば。

[編集]

それが手間がかかりすぎる場合は、簡単に勝つために、クラス定義を次のように変更してみてください。

[DataContract]
public Class DTO
{
    [DataMember]
    public Exception ex {get;set;}
}
于 2013-01-09T14:06:19.630 に答える