StructureMap, определяющий явные аргументы конструктора

Я работаю над устаревшим кодом.

У меня есть разные методы одного и того же класса, которые передают разные аргументы конструктору зависимости. Я пытаюсь познакомиться с базовым использованием IoC. Прямо сейчас у меня есть StructureMap, передающая мои аргументы следующим образом:

var thing = ObjectFactory.GetInstance<IThingInterface>(new ExplicitArguments(
      new Dictionary<string, object> { 
          { "constructorArgA", notShown  }, 
          { "constructorArgB", redacted.Property } }));

Где фактические свойства, переданные для constructorArgA и B, меняются в зависимости от того, где я нахожусь.

Вместо «constructorArgA» есть способ настроить это с помощью реальных типов, например вы можете сделать это при настройке objectFactory, например:

x.For<IHidden>().Use<RealType>()
   .Ctor<IConfig>().Is(new Func<IContext, IConfig>(
        (context) => someMethodToGetIConfig()));

Если бы я писал это с нуля, я бы, вероятно, немного иначе структурировал бы зависимости, чтобы этого избежать, но сейчас это не вариант для меня.

6
задан Adam Rackis 15 August 2011 в 21:22
поделиться