2011-06-09 22 views
1

は、ここに私の状況です:ダイナミックランタイム依存性の注入

私は(T4を使用して)テンプレートに基づいてものを生成するアプリケーションを持っていると私はITemplateインターフェイスを継承複数のテンプレートクラスを持っています。私は私のメインで行うたい何

はdinamicallyから読み取られて使用するものを実装、私GeneratorクラスでいくつかのITemplate実装を注入することである、のは、設定ファイルを言ってみましょう。次に、メインでは、使用するテンプレートを理解し、適切なTransformText()を呼び出すジェネレータを呼び出す必要があります。

私はNinjectを使用しています。

あなたが本当にあるならばそれは私が静的型付け言語の依存性注入を使用して、初めてなので、私は続行する方法についてはわからないんだけど...

よろしく、

ヒューゴ

答えて

0

簡単な例としてここでDIを使いたいのですが、プラグインシステムのようなものを探しているのであれば、mefをチェックしてみてください。

あなたは発電機

public class Generator 
{ 

    private ITemplate _template; 
    public Generator(ITemplate t) 
    { 
     _template = t; 

    } 

    public void Generate() 
    { 
     _template.Generate(); 
    } 
} 

セットアップあなたのモジュールを持っていると仮定します。

public class MyNinjectModules : NinjectModule 
    { 
     public override void Load() 
     { 
      Bind<ITemplate>().To< TemplateImplementation>(); 
      Bind<Generator>().ToSelf(); 
    } 
} 

Ninjectカーネルを準備して使用してください。

public class Program 
{ 
    public static void Main(
    { 
     var kernel = new StandardKernel(MyNinjectModules); 
     var myGenerator = kernel.Get<Generator>(); 
    } 


}