2

次のシナリオがあります。

  • サービス コントラクト用の 1 つのインターフェイス (IInterface)
  • インターフェイス内で宣言されたイベント(目的については後で説明します)
  • このインターフェイスを実装する 1 つのクラス、サービス クラス (MyClass)
  • インターフェイス コントラクトを使用してチャネルを開き、イベントを含むすべてのインスタンスのメンバーを公開するプロキシ クラスを取得するクライアント。

次のようなサービス クラスのインスタンスを作成すると:

IInterface instance = (IInterface)new MyClass();

そこから、次のことができます。

instance.Event1 += OnEvent1;

しかし、プロキシクライアントを作成しているとき:

IInterface proxy = new ChannelFactory<IInterface>(....);

Event1 はプロキシ クライアントでどのように公開されますか? プロキシ側のみのイベントですよね?それらはサーバー クラスから完全に切り離されていますね。

だから、私はできる:

proxy.Event1 += OnEvent1;

しかしEvent1、WCF サーバー クラス インスタンスから呼び出されることはありませんよね?

WCF サーバー クラスが次のようなイベント チェックを行うとどうなりますか。

if (Event1 != null)
  { Event1(); }

...何も起こりません?

4

1 に答える 1