4

だから私はこのようなコードをいくつか持っています。

[DataContract]
public class Example
{
    SomeClass _someVar;

    [OnDeserializing]
    public void OnDeserializing(StremingContext c)
    {
        _someVar = new SomeClass();
    }
}

面白いことに、Visual Studio 2010 のテスト デバッグ クライアントを使用すると、OnDeserializing() が呼び出されます。 't)、_someVar は常に null であるためです。

ああ!

他に何をする必要がありますか?

よろしく、フグ

4

2 に答える 2

2

WCF は標準の .net シリアル化を使用しないため、OnDeserializing メソッドが呼び出されるかどうかはわかりません。ただし、WCF に XmlSerializer を使用するように要求することはできます。これにより、必要な動作が得られるはずです。こちらの「シリアル化プロセスの制御」をご覧ください。

于 2011-02-24T21:17:18.907 に答える
0

PaulF の回答に加えて、クラスはシングルトンではありません。サービスへのExample2 回の呼び出しは、デフォルトで 2 回インスタンス化され、メソッドが 1 回呼び出されます。

このため、変数をクラス レベルで宣言してもほとんど意味がありません。

この動作を変更したい場合は、こちらで詳細を確認してください

于 2011-02-24T21:21:34.823 に答える