如何使用StructureMap v2.6解析signalR v2.0

 气质朱总_206 发布于 2023-02-08 20:30

在Global.asax的Application_Start中,我有以下内容

 ObjectFactory.Initialize(cfg => {
     cfg.For().Singleton().Add    ();
 });

我的Hub接口是

public interface IDashboardHub
{
    void Initialize();
}

我的中心如下:

public class DashboardHub : Hub, IDashboardHub
{
    private readonly ICpeAccountService _accountService;

    public DashboardHub(ICpeAccountService service)
    {
        _accountService = service;
    }

    [Authorize]
    public void Initialize()
    {
        Clients.All.UpdateStatus("Hello World!!!");
    }
}

如果我删除注入的构造函数和解析器,那么我得到"Hello World"信号,JavaScript显示值.如果我只是删除解析器,那么signalR不再找到无参数构造函数,并且不会调用Initialize方法.

如果我包含StructureMap依赖项解析器(它正在工作并立即注入大约40个其他类),那么我得到以下异常消息

StructureMap configuration failures: Error:  104
Source:  Registry:  StructureMap.Configuration.DSL.Registry, StructureMap,
Version=2.6.4.0, Culture=neutral, PublicKeyToken=e60ad81abae3c223
Type Instance '87da3c00-4deb-4334-b189-021d445d95ec' 

(Configured Instance of App.DependencyResolution.StructureMapDependencyResolver, 
    App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)     
    Cannot be plugged into type Microsoft.AspNet.SignalR.IDependencyResolver, 
    Microsoft.AspNet.SignalR.Core, Version=2.0.0.0, Culture=neutral,     
    PublicKeyToken=31bf3856ad364e35

此外,如果我尝试在startup.cs中解决所有问题,如下所示:

public void Configuration(IAppBuilder app)
{
    ObjectFactory.Initialize(cfg =>
    {
            cfg.For()
               .Singleton()
               .Add();
        });

    app.MapSignalR();
}

我也得到了同样的错误.

有没有人能够解决这个问题?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有