Comments 4
Собственно поэтому в своем проекте используем autofaq — почти все из коробки. Странно что он не на столько распространен как остальные библиотеки.
Еще есть подобный код (правда проект mvc2 и относительно «старый» autofaq):
после Unity — просто счастье
Еще есть подобный код (правда проект mvc2 и относительно «старый» autofaq):
Assembly executingAssembly = Assembly.GetExecutingAssembly();
builder.RegisterControllers(executingAssembly).HttpRequestScoped();
builder.RegisterAssemblyTypes(
typeof (SomeClass).Assembly,
typeof (OtherClassFromDifferentAssembly).Assembly,
typeof (AnotherClassOfThirdAssembly).Assembly,
executingAssembly);
builder.RegisterAssemblyTypes(executingAssembly)
.Where(t => t.Name.EndsWith("Repository") ||
(t.FullName.StartsWith("OurApplication.Models") &&
t.GetInterfaces().Any()))
.AsImplementedInterfaces();
после Unity — просто счастье
Собственно сейчас что Unity, что Ninject, что Autofack представляют примерно одинаковый функционал. Похожая реализация на Unity.
var servicesAssembly = Assembly.GetAssembly(typeof (IService));
foreach (var type in servicesAssembly.GetTypes()
.Where(t => t.Name.EndsWith("Service") && t.IsClass))
{
var interfaceType = type.GetInterfaces().FirstOrDefault(i => i.Name.EndsWith("Service") && !(i.Namespace ?? string.Empty).EndsWith("Base"));
if (interfaceType != null)
{
container.RegisterType(interfaceType, type);
}
}
в юнити меня в основном раздражало задание Lifetime Scope. Да и в целом количество действий, которые необходимо предпринять. В приведенном мной коде это, например, первые 2 строчки.
Возможно в новой версии что-то изменилось (давно не следил).
Возможно в новой версии что-то изменилось (давно не следил).
Sign up to leave a comment.
Dependency injection в MVC 3 Framework на примере Autofac