Я вижу there is an extension for Ninject integration с asp.net-mvc, но похоже, что я могу интегрировать Ninject с mvc fine без этого расширения. Например:Нужно ли использовать расширение ninject.mvc?
public class NinjectDependencyResolver : IDependencyResolver
{
private readonly IResolutionRoot _resolutionRoot;
public NinjectDependencyResolver(IResolutionRoot resolutionRoot)
{
_resolutionRoot = resolutionRoot;
}
public object GetService(Type serviceType)
{
return _resolutionRoot.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _resolutionRoot.GetAll(serviceType);
}
}
public class MvcApplication : HttpApplication
{
void Application_Start()
{
var modules = new INinjectModule[] { new ServiceModule() };
var kernel = new StandardKernel(modules);
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
Это какое-то унаследованное расширение или оно по-прежнему актуально? Я вижу последние обновления исходного кода, поэтому я был немного смущен
относительно № 1, что не так с предлагаемой реализацией? – leora
@leora - я не знаю, что с рук, но так как Remo написал существующий, и, глядя на код, он делает намного больше вещей (например, имея дело с областью запроса, я думаю?), Я бы предположил, что есть, по крайней мере, область поддержки запроса "(но не уверен, что это правда или нет) –
@leora Он не обрабатывает многократное перечисление правильно, что приведет к странному поведению - это некоторые сценарии. И из-за TryGet будет очень сложно обнаружить некоторые проблемы с конфигурацией. –