【问题标题】: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);
    

    【讨论】:

    • 我链接到我在原始问题中使用的 Funq 依赖解析器,它也与 Ninject 非常相似,可以完美运行 gist.github.com/aaronlerch/5345587 显然 Funq 缺少一些东西。
    猜你喜欢
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多