Можно ли использовать инъекцию зависимостей (DI) с помощью Windows PowerShell?Инъекция зависимостей с помощью 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");
}
}
Если добавить конструктор по умолчанию, Командлет может быть зарегистрирован и используется, но без конструктора по умолчанию, это просто не доступно.
Я знаю, что я мог бы использовать Service Locator, чтобы получить мои зависимости, но я считаю, что анти-шаблон так не хочет идти таким образом.
Я бы надеялся, что у API PowerShell был какой-то крючок «Factory», похожий на WCF ServiceHostFactory, но если есть, я не могу его найти.
мне очень интересно, как хорошо. –
У меня тяжелое время подходит для хорошего использования. – yfeldblum
Я использую локатор сервисов. :) –