2009-10-08 11 views
8

誰でも助けることができますか?ユニティとWCFライブラリ:wcfライブラリでユニティをロードする場所は?

私はWCFライブラリ(ないアプリケーション)を作成していると私はSVC IISページでこれを開催します。..

をしかし、私は一般的な場所で統一のものをロードしたいと思っていた...私はそれを読み込むことができますglobal.asaxではIIS Asp.netコンテナに結びついていますが、TDDを実行するとこの部分は実行されませんので、私の解決策ではうまくいかないでしょう。

WCFライブラリは純粋なクラスなので、私はOnStartupなどのイベントを使用できますか?

私は基本クラスからサービスを継承したものを考える唯一の方法だけでなく、いくつかの種類の静的クラスを呼び出すと統一のためのブートストラップを行うだろうインタフェース..

私は少し失われています、これが唯一の方法なのか、それとも何か私が気付いていないことです。これまで、その後統一注入が起こることを必要とWCFライブラリを呼び出す

基本的な考え方がある

... ..

任意のアイデアは?

おかげ

答えて

5

この問題にはいくつかの方法があります。ここでは、2つの最良の選択肢です:

あなたはパブリック静的メソッドAppInitializeであなたにApp_CodeディレクトリにApplicationStartというクラスを作成することができ、カスタムのServiceHostを作成し、InitializeRuntime

を上書きすることができます(それはしかし、匂いのビットです):

public static class ApplicationStart 
{ 
    public static void AppInitialize() 
    { 
     // Initialise IoC container 
    } 
} 

ウェンロンドンはother methods on his blogです。

+0

ありがとう、私はInitializeRuntimeを使用するつもりです –

0

あなたはUnityまたは別のIOCコンテナを使用してサービスオブジェクトを作成するIInstanceProviderを使用することができます。方法については、thisのブログ記事を参照してください。

次に、属性として実装されたIContractBehaviorを使用して、ApplyDispatchBehaviorメソッドでInstanceProviderを設定することにより、IIpstRuntimeにIInstanceProviderを追加できます。

0

Unity.WCFという名前のオープンソースのNuGetパッケージがあります。

詳細とソースコードについては、http://unitywcf.codeplex.com/を参照してください。