Мне нужно предоставить какую-то глобальную область видимости для недействительного модуля, и подумать, что было бы лучше внедрить это через модуль.
В настоящее время я сканирую сборки для модулей, и поэтому могуне могу определить, как предоставить эти аргументы (чисто).
У меня есть консольное приложение, и я хочу выбрать реализацию типа на основе аргументов приложения.
Проблемазаключается в том, что эти типы зависят от конкретной десериализации этих аргументов, которая определяется во время поиска.
Что я хотел бы сделать, это примерно так:
public class Module : MyNinjectModule<Module>
{
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<IBaseType>().To<FirstImpl>()
.When(req => this.Type == FictionalEnum.FirstType);
Bind<IBaseType>().To<SecondImpl>()
.When(req => this.Type == FictionalEnum.SecondType);
}
}
У кого-нибудь есть предложения по этому поводу?