【问题标题】:SignalR Funq DependencySignalR Funq 依赖项
【发布时间】:2014-01-19 18:52:54
【问题描述】:
我正在尝试使用 Funq D.I. 注入 Signalr 依赖项
这个过程很好地解释了here,我也尝试关注this问题。
Ninject 版本运行良好。
现在我正在尝试使用 gist for FunqDependencyResolver 将其转换为 Funq 版本。
但是这个Funq version 不起作用并给出“System.MissingMethodException:没有为此对象定义无参数构造函数”,这应该是因为它没有注册依赖项。
这是因为 Ninject 版本正在解析为方法吗?
【问题讨论】:
标签:
c#-4.0
dependency-injection
ninject
signalr
funq
【解决方案1】:
我们使用了 Windsor,但任何 IoC 的过程都是相同的:
首先创建你的解析器,继承自signalR DefaultDependencyResolver:
public class CustomContainerResolver: DefaultDependencyResolver
{
public CustomContainerResolver(IocContainer instance)
{
_instance = instance;
}
public override object GetService(Type serviceType)
{
return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetService(serviceType) : base.GetService(serviceType);
}
public override IEnumerable<object> GetServices(Type serviceType)
{
return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetAllInstances(serviceType): base.GetServices(serviceType);
}
}
在您的启动中:
var signalrDependency = new CustomContainerResolver(container);
那么,像往常一样
app.MapSignalR(hubConfiguration);