我对 NancyFx 和 TinyIoc 有点陌生,但这里是:
我已经能够在 NanxyFx 中使用 TinyIocContainer 的自动注册来在 Nancy 模块中注入依赖项,这非常简洁,一切都很好并且可以正常工作。
但是,您如何为如下所示的信号器集线器注册依赖项?
我不断收到来自信号器的经典错误消息:
No parameterless constructor defined for this object.
我的设置:
我有一个 SignalR 集线器:
[Hubname("chathub")]
public class ChatHub: Hub {
private IChat _chat;
public ChatHub(Chat chat){
_chat = chat;
}
}
这是我的依赖:
public class Chat: IChat{
public Chat(IHubConnectionContext clients, IChatRepo repo){
...
}
}
我创建了一个 CustomBootstrapper 类:
public class CustomBootstrapper : DefaultNancyBootstrapper
{
protected override void ApplicationStartup(TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines)
{
base.ApplicationStartup(container, pipelines);
// I'm hoping the registration below will resolve for the IHubConnectionContext parameter for the Chat class
container.Register(GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients);
}
}
我有一个启动类:
public class Startup{
var hubConfiguration = new HubConfiguration { EnableDetailedErrors = true};
app.MapSignalR("/signalr", hubConfiguration);
}
如果我有一个 ChatHub 的无参数构造函数并使用可怜的 mans Ioc,那么一切正常。
我很确定我错过了一些东西。
有任何想法吗?