Автоматическая регистрация всех интерфейсов в Unity

Используя Unity, я хотел бы автоматически регистрировать все комбинации интерфейс/класс в сборке на основе следующего соглашения:

INameOfObject > NameOfObject

StructureMap делает это, когда включены соглашения по умолчанию.

Я написал для него следующий метод:

private static IUnityContainer RegisterITypesOf(this IUnityContainer container, string assemblyName)
{
  Assembly.Load(assemblyName)
    .GetTypes()
    .Where(t => t.GetInterfaces().Any(i => i.Name == "I" + t.Name))
    .ForEach(t => container.RegisterType(t.GetInterface("I" + t.Name, false), t));
  return container;
}

Мой вопрос:

  • есть ли встроенная функция, которая делает то же самое?
  • Если нет, можно ли улучшить производительность моего кода?
18
задан abatishchev 14 March 2012 в 12:42
поделиться