ninjectモジュールへの引数

ninjectモジュールにいくつかのグローバルスコープを提供する必要があります。モジュールを介してこれを注入するのが最善であると考えます。

私は現在、モジュール用のアセンブリをスキャンしているので、これらの引数を(きれいに)提供する方法を判断することはできません。

私はコンソールアプリケーションを持っており、アプリケーションへの引数に基づいて型の実装を選択したいと思います。

問題は、これらの型は、ルックアップ時に決定される引数の特定の非直列化に依存していることです。

私がしたいことは次のようなものです:

public class Module : MyNinjectModule
{
    private enum FictionalEnum
    {
        FirstType,
        SecondType
    }

    private string[] _args;

    private FictionalEnum Type
    {
        get
        {
            return IsFirstType(_args)
                       ? FictionalEnum.FirstType
                       : FictionalEnum.SecondType;
        }
    }

    public Module(string[] rawArgs)
    {
        _args = rawArgs;
    }

    protected override void  LoadCustomBindings()
    {
        Bind().To()
            .When(req => this.Type == FictionalEnum.FirstType);

        Bind().To()
            .When(req => this.Type == FictionalEnum.SecondType);
    }
}

誰にもこれに対する提案はありますか?

1

1 答え

私の意見では、この論理はモジュールに属していません。私は、すべてのインスタンスを注入してから、アプリケーションでどのインスタンスを採用するか、または注入するかを決定し、引数に応じてファクトリに正しいタイプを作成させます。

1
追加された