次のインターフェースを検討してください。
public interface IMyCallback
{
void SomeEvent(int someArg);
}
これは、WCF サービスから「イベント」を受け取る WCF コールバックのコントラクトです。このインターフェースの私の実装は次のようになります
public class MyCallback : IMyCallback
{
void IMyCallback.SomeEvent(int someArg)
{
OnSomeEvent(someArg);
}
protected virtual void OnSomeEvent(int someArg)
{
EventHandler<SomeEventArgs> handler = this.SomeEvent;
if (handler != null)
{
handler(this, new SomeEventArgs(someArg));
}
}
public event EventHandler<SomeEventArgs> SomeEvent;
}
これにより、コールバックをインスタンス化し、クライアント コードで SomeEvent イベントをフックできます。サーバーがコールバックを呼び出すたびに、単純な古い .NET イベントを受け取ります。すべてがうまく機能します。
ここで質問があります。このコールバックの作成を自動化するファクトリ クラスを作成して、このアプローチをすべてのプロジェクトと任意のインターフェイスで簡単に再利用したいと考えています。ファクトリは次のように呼び出されます。
var myCallback = CallbackFactory.CreateCallback<IMyCallback>();
このクラスを動的に作成するためにモッキング フレームワークを使用することはできますか? それとも、実装ごとにコードを渡す必要がありますか? または、私が考えていない別のアプローチはありますか?