Я использую SimpleInjector в MVC с этим кодомКак настроить LightInject в ASP.NET MVC?
public static class SimpleInjectorInitializer
{
public static void Initialize()
{
var container = new Container();
InitializeContainer(container);
container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
container.Verify();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
}
private static void InitializeContainer(Container container)
{
container.Register<IPersonRepository, PersonEntityRepository>();
}
}
, но теперь я хочу, чтобы проверить LightInject IoC в моем приложении MVC, но как?
Я написал этот код
[assembly: WebActivator.PostApplicationStartMethod(typeof(LightInjectInitializer), "InitializeLI")]
public static class LightInjectInitializer
{
public static void InitializeLI()
{
var container = new ServiceContainer();
InitializeContainer(container);
container.RegisterControllers(Assembly.GetExecutingAssembly());
container.EnableMvc();
}
private static void InitializeContainer(ServiceContainer container)
{
container.Register(typeof(PersonEntityRepository), typeof(IPersonRepository), new PerScopeLifetime());
}
}
но показать мне эту ошибку
No parameterless constructor defined for this object.
Может кто-нибудь помочь мне для написания эквивалентного кода, работающие в MVC?
Пример кода:Download
Любая конкретная причина, вы переключаетесь на Light Inject? Любая особенность, в которой вы отсутствуете в Simple Injector? – Steven
см. Сравнительный тест http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison –
Я знаком с этим эталоном. Это ваша единственная причина в производительности? Обратите внимание, что LightInject просто немного быстрее, чем простой инжектор. Вы не увидите измеримой разницы в производительности в любом реальном приложении. – Steven