2011-07-13 17 views
1

私はWCF 4.0 RESTサービスを構築しており、DIコンテナとしてAutofacを使用したいと考えています。どうやら、私はサービスクラス(サービス契約の実装)のパラメータ化されたコンストラクタを呼び出すことができたいと思っています。これらのインターフェイスはAutofacコンテナ内に登録されるため、(パラメータ化されていないコンストラクタを呼び出す代わりに)デフォルトのサービスクラスのインスタンスを作成するときに、それらを解決して使用します。Autofac + WCF REST 4.0

MVCコントローラにも同様の問題がありますが、これはAutofac MVC Integrationパッケージで解決されています。 WCF REST 4.0にすぐに使用できるものはありますか?いいえ、私の問題を解決する最良の方法は何ですか?たとえば、私がAutofacを使用するように設定できるMVCのDependencyResolverのようなものはありますか?

4.0以降、WCF RESTのいくつかの概念が変更されていることに注意してください。たとえば、.svcファイルが存在しない場合、必要なメソッドを呼び出すだけで十分です。私はWCF REST 4.0の新機能ですから、いくつかの巨大なカスタムメカニズムを実装する日を過ごす前に、コミュニティに提案を求めていました。悲しいかな、インターネット上でのクイック検索は、私に受け入れられる解決策を提供しませんでした。

答えて

2

//Build a container with your service registered. 
var builder = new ContainerBuilder(); 
builder.RegisterType<YourService>(); 
var container = builder.Build(); 

//Set AutofacHostFactory.Container with this built container. 
AutofacHostFactory.Container = container; 

//Use AutofacWebServiceHostFactory instead of WebServiceHostFactory 
var factory = new AutofacWebServiceHostFactory(); 

//Add your routes 
RouteTable.Routes.Add(new ServiceRoute("YourServiceUrl", factory, typeof(YourService))); 

すべてです。

0

the existing WCF integrationをサポートしていますか?グローバルアプリケーションの起動で

+0

はい、私は少し異なる場合がありますか?私はそれを試してみましょう。 –

+0

私はそれを他のニーズに使用していたので、答えはとにかく便利でした –