は、これは私が作るために使用される方法であるメソッドを呼び出します:変更既存のWCFの通信オブジェクト
ChannelFactory<ISomethingWebService> cnFactory = new ChannelFactory<ISomethingWebService>("SomethingWebService");
ISomethingWebService client = cnFactory.CreateChannel();
using (new OperationContextScope((IContextChannel)client))
{
client.SomeMethod();
}
私の質問は次のとおりです:
SvcHelper.Using<SomeWebServiceClient>(proxy =>
{
proxy.SomeMethod();
}
public class SvcHelper
{
public static void Using<TClient>(Action<TClient> action) where TClient : ICommunicationObject, IDisposable, new()
{
}
}
これは私がメソッド呼び出しを行う方法です代わりのすべてのインスタンスを置き換えます私の元のメソッド呼び出しのアプローチ。 SvcHelper
コンストラクタ内のチャネルの作成を私SvcHelper
を変更して行う方法はありますし、その後、単純に以下のようなインターフェイス渡します。これは、事前に感覚と感謝を作る
SvcHelper.Using<ISomethingWebService>(client =>
{
client.SomeMethod();
}
希望を。これは動作するはず
なぜ、削除する必要があるのか分かりません。サンプルコードを貼り付ける前にサンプルコードをコンパイルしていました。わかりやすく接頭辞付きのメソッド呼び出しが好きなので、私は常にこれに接頭辞を付けます。またはClassName。静的呼び出しの場合 –
この方法と同様にキャッシュを実装する必要がありますか? – fuzz
よくChannelFactoryインスタンスのキャッシュをChannel Typeでキャッシングしていますが、実際には完全な実装になるためにType + endpointConfiguration名でキャッシュする必要があることを忘れていました。私は実装が完了するように更新します。 –