我所有的SignalRHub都有自己的服務接口,這在客戶端用於類型安全呼叫;即不再提及字符串方法。可以使用自定義解析程序而不是hubname屬性來解析信號中心?
無論如何,使用此設置,我不得不使用接口名稱將HubName屬性添加到所有集線器。是否有可能通過這些接口解決集線器問題。
我嘗試使用Ninject解析器替換GlobalHost和HubConfiguration對象中的解析器,但它似乎沒有將解析器調用到中心本身。
這裏是一個集線器的一個示例:
[HubName("IFoobarService")]
public class FoobarHub : Hub, IFoobarService
{
public void Baz(BazDto dto)
{
Clients.Others.Baz(dto);
}
}
}
這裏是我曾經嘗試綁定我的樞紐與Ninject kernel.Bind(X => x.FromThisAssembly(代碼) .SelectAllClasses() .InheritedFrom() .BindAllInterfaces());
提供我自己的HubDescriptorProvider會有什麼不足嗎? – Phaeze
如果您在實施ReflectedHubDescriptorProvider更改後升級SignalR,則應用程序不會利用ReflectedHubDescriptorProvider的修復/改進功能,除非您手動修補自定義IHubDescriptorProvider。 – halter73
好吧,也許我會嘗試Ninject示例使用的相同方法,並繼承該類,以便它可以回退到默認使用。謝謝你的幫助。 – Phaeze