gpt4 book ai didi

signalr - 无法将 DependencyResolver 传递给 HubConfiguration 中的 MapSignalR

转载 作者:行者123 更新时间:2023-12-02 20:49:16 29 4
gpt4 key购买 nike

我有一个 MVC 4 应用程序,其中使用 SignalR 和依赖项注入(inject)框架。因此,我需要实现一个自定义的 DependencyResolver。为了连接它,我正在使用

        var resolver = new CustomSignalRDependencyResolver(...);
GlobalHost.DependencyResolver = resolver;
app.MapSignalR();

一切都按预期进行。但是,如果我使用像这样的 HubConfiguration 对象:

        var resolver = new CustomSignalRDependencyResolver(...);
app.MapSignalR(new HubConfiguration(
{
Resolver = resolver
});

一切似乎都正常工作(对象已正确连接,没有任何错误或警告),但不再调用远程方法。有人可以解释一下第一种方法和第二种方法之间的区别吗?

最佳答案

我认为 Lars Höppner(在这篇文章中留下第一条评论的用户)是正确的。

您绝对可以使用自定义依赖项解析器,而无需更改 GlobalHost.DependencyResolver(SignalR 测试套件经常这样做),但您必须确保 GlobalHost 不这样做。不会出现在代码中的其他任何地方。

这意味着绝对没有引用:

  • GlobalHost.Configuration
  • GlobalHost.ConnectionManager
  • GlobalHost.TraceManager
  • GlobalHost.HubPipeline
  • 当然还有 GlobalHost.DependencyResolver

Lars 链接到的 SO 帖子 (SignalR: Sending data using GlobalHost.ConnectionManager not working) 向您展示了如何从自定义依赖项解析器获取 ConnectionManager;您可以对 GlobalHost 上的所有其他属性执行相同的操作。

关于signalr - 无法将 DependencyResolver 传递给 HubConfiguration 中的 MapSignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20990308/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com