0

Unity を使用してハブの 1 つにデータを注入し始めました。これは機能しますが、ハブの外側のどこかでハブコンテキストを解決すると、間違ったものを取得しているように見えます。これは、メッセージを送信しようとすると、接続されているクライアントがメッセージを取得できないためです。

依存関係リゾルバー:

public class SignalRUnityDependencyResolver : DefaultDependencyResolver, IDependencyResolver
    {
        private IUnityContainer _container;
        public SignalRUnityDependencyResolver(IUnityContainer container)
        {
            _container = container;
        }
        public override object GetService(Type serviceType)
        {
            if (_container.IsRegistered(serviceType)) return _container.Resolve(serviceType);
            else return base.GetService(serviceType);
        }
        public override IEnumerable<object> GetServices(Type serviceType)
        {
            if (_container.IsRegistered(serviceType)) return _container.ResolveAll(serviceType);
            else return base.GetServices(serviceType);
        }
    }

コンテナに登録するもの:

container.RegisterType<MessageHub>(new InjectionConstructor(new EFAuthRepository()));

私のハブ:

public class MessageHub : Hub
{
    IAuthRepository _repository;
    public MessageHub(IAuthRepository repository)
    {
        _repository = repository;
    }

ハブの外で解決する方法:

 var context = GlobalHost.ConnectionManager.GetHubContext<MessageHub>();

他に登録が必要なものはありますか?

4

1 に答える 1