我正在使用SimpleInjectorHubActivator<T>
初始化我的SignalR
(AspNetCore.SignalR)集线器并将其注册在Simple Injector中(如the documentation中所述。这是我编写的代码:
public class SimpleInjectorHubActivator<T> : IHubActivator<T> where T : Hub
{
private readonly Container container;
private Scope scope;
public SimpleInjectorHubActivator(Container container) => this.container = container;
public T Create()
{
scope = AsyncScopedLifestyle.BeginScope(this.container);
return this.container.GetInstance<T>();
}
public void Release(T hub) =>scope.Dispose();
}
我要初始化的Hub
具有其他三个相关的依赖关系,这些依赖关系正在初始化,但Hub
,Client
和Context
之类的Group
方法不是:
这是我创建中心实例的方式:
using (AsyncScopedLifestyle.BeginScope(container1))
{
_hub = container1.GetInstance<Hub>();
await _hub.Clients.Group("test").SendAsync("ReceiveMessage", "test");
}
有人可以告诉我这个问题吗?
集线器的Clients
。 Context
和Group
属性由SignalR的内部DefaultHubDispatcher初始化,它是SignalR的IHubActivator<T>
的主要使用者。初始化这些属性既不是IHubActivator<T>
的任务,也不是DI容器的任务。他们只是没有足够的信息。