【发布时间】:2013-10-27 03:57:21
【问题描述】:
我正在尝试让 SignalR、MEF 和 MVC 一起工作。
这是我的解析器类:
public class SignalRDependencyResolver : DefaultDependencyResolver
{
private readonly CompositionContainer _container;
public SignalRDependencyResolver(CompositionContainer container)
{
_container = container;
}
public override object GetService(Type serviceType)
{
if (serviceType == null)
{
throw new ArgumentNullException("serviceType");
}
var name = AttributedModelServices.GetContractName(serviceType);
var export = _container.GetExportedValueOrDefault<object>(name);
return export;
}
public override IEnumerable<object> GetServices(Type serviceType)
{
if (serviceType == null)
{
throw new ArgumentNullException("serviceType");
}
var exports = _container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
return exports;
}
}
这是我的 Owin 启动:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var resolver = new SignalRDependencyResolver(MefConfigWeb.Container);
var config = new HubConfiguration
{
Resolver = resolver,
};
app.MapSignalR(config);
}
}
我可以中断 Startup 类并查看容器确实包含我的导出。但是,Visual Studio 提示异常:
第 244 行第 13 列未处理的异常
http://localhost:3928/Scripts/jquery.signalR-2.0.0.js0x800a139e - JavaScript 运行时错误:SignalR:加载集线器时出错。 确保您的集线器参考正确,例如.
如果我没有设置我的自定义依赖解析器并在 Hub 类中新建我的依赖项,该应用程序可以正常工作。
我正在学习本教程:http://www.asp.net/signalr/overview/signalr-20/extensibility/dependency-injection
任何想法为什么这不起作用?
【问题讨论】:
标签: model-view-controller dependency-injection signalr mef