Плагины StructureMap - более простой способ? - PullRequest
0 голосов
/ 25 марта 2010

Допустим, у вас есть интерфейс IModel, который использует пару шаблонов ...

public interface IModel<TOne, TTwo>
{
     TOne ConvertToOne(TTwo two);
     TTwo ConvertToTwo(TOne one);
}

и класс, который реализует это

public class OneTwo : IModel<SomethingOne, SomethingTwo>
{
   SomethingOne ConvertToOne(SomethingTwo two)
   { //zomg! nothing exciting!
   }

   ...
}

Ничего особенного. В моих конфигах картирования у меня есть список, который выглядит примерно так ...

For<IModel<SomethingOne, SomethingTwo>>().Use<OneTwo>();
For<IModel<SomeOne, SomeTwo>>().Use<AnotherClass>();

и так далее. Основываясь на DRY, я чувствую, что это трудный способ сделать это (сейчас их 7, скоро будет около 20) В любом случае, чтобы сделать это «лучше»?

1 Ответ

1 голос
/ 25 марта 2010

Вы можете попробовать это ... это может сработать.

ObjectFactory.Initialize(x =>
{
    x.Scan(scan =>
    { 
        scan.AssemblyContainingType<Something>();
        scan.ConnectImplementationsToTypesClosing(typeof(IModel<,>));
    }
}
...