2
我刚刚将Ninject的依赖注入框架切换到StructureMap - 由于Ninject产生了糟糕的性能!我在SignalR集线器正在清除
问题是,当我的电缆铺设DependencyResolver,我的集线器正在由RouteTable.Routes.MapHubs线清除出:
GlobalHost.DependencyResolver = new SignalRDependencyResolver(ObjectFactory.Container);
RouteTable.Routes.MapHubs(GlobalHost.DependencyResolver);
含义毂对象在/ SignalR /集线器javascript文件有一个空的Hubs对象。
我在application_start中像在wiki中那样分配DependencyResolver,并且在SignalR之后做了我的MVC4和WebAPI依赖关系解析器。
这可能是什么原因造成的?
更新 - 这里是DependencyResolver实施:
public class SignalRDependencyResolver : DefaultDependencyResolver
{
private IContainer _container;
public SignalRDependencyResolver(IContainer container)
{
_container = container;
}
public override object GetService(Type serviceType)
{
object service = null;
if (!serviceType.IsAbstract && !serviceType.IsInterface && serviceType.IsClass)
{
// Concrete type resolution
service = _container.GetInstance(serviceType);
}
else
{
// Other type resolution with base fallback
service = _container.TryGetInstance(serviceType) ?? base.GetService(serviceType);
}
return service;
}
public override IEnumerable<object> GetServices(Type serviceType)
{
var objects = _container.GetAllInstances(serviceType).Cast<object>();
objects.Concat(base.GetServices(serviceType));
return objects;
}
}
一个坏的依赖解析器的实现可能会导致它。 – davidfowl 2012-07-05 18:15:31
我用解析器代码更新了问题 – reach4thelasers 2012-07-05 20:17:44