Можно ли использовать Injection Dependency (DI) с Windows PowerShell?
Мои интуитивные эксперименты предполагают, что это не так. Если я попытаюсь использовать Инъекция конструктора в CmdLet, он даже не зарегистрируется. Другими словами, это невозможно:
[Cmdlet(VerbsDiagnostic.Test, "Ploeh")]
public class PloehCmdlet : Cmdlet
{
public PloehCmdlet(IFoo foo)
{
if (foo == null)
{
throw new ArgumentNullException("foo");
}
// save foo for later use
}
protected override void ProcessRecord()
{
this.WriteObject("Ploeh");
}
}
Если я добавлю конструктор по умолчанию, CmdLet можно зарегистрировать и использовать, но без конструктора по умолчанию он просто недоступен.
Я знаю, что я мог бы использовать Locator для поиска моих зависимостей, но я считаю, что анти-шаблон так не хочет идти таким образом.
Я бы надеялся, что у API PowerShell был какой-то "Factory", похожий на WCF ServiceHostFactory, но если есть, я не могу его найти.