2011-01-06 14 views
3

私はsvcutil.exeからの助けなしでWCFサービスを消費する2つの方法を発見した:svcutil.exeなしでWCFサービスを使用するには?

  • ClientBase<IService>
  • ChannelFactory<IService>

私はClientBaseはおそらくChannelFactoryを使用していることを知っています。

public sealed class ServiceClient 
    : ClientBase<IService>, IService 
{ 
    ReturnType IService.MethodName(ParameterType parameterName) 
    { 
     return Channel.MethodName(parameterName); 
    } 
} 

// later 
IService client = new ServiceClient(); 
var result = client.MethodName(parameterName); 

または

ChannelFactory<IMyService> channelFactory = new ChannelFactory<IMyService>(); 
channelFactory.Open(); 

var channel = channelFactory.CreateChannel(); 
var result = channel .MethodName(parameterName); 

channelFactory.Close(); 

1は、私が選択する必要があります。しかし、私は書き込みの間の選択について話していますか?

答えて

5

あなたの選択基準は何ですか?

機能的には、結局のところ、どちらのアプローチもうまく機能し、基本的に同じ結果が得られます。

あなたの意思決定の基本は何ですか?

私のアドバイス:あなたがより快適に感じるスタイルを選んでください! ChannelFactory<IService>のアプローチでは、多少のコード​​を書く必要があるかもしれません。多分、それはそのアプローチにとって少し有利かもしれません。

両方のアプローチでは、チャネルの両端に.NETがあり、そのサービスとクライアントはサービスと操作規約を持つ共通のアセンブリを共有する必要があります。サービスに接続する2つの方法のいずれかを使用することができます。

関連する問題