在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(); }
我也得到了同样的错误.
有没有人能够解决这个问题?