私はUnityをDIコンテナとして使用しています。私は、SignalRハブを解決する際に動作させることができませんでした。誰もこれで成功したのですか?私は、次のことを試してみた:UnityContainerをSignalR Dependency Resolverとして使用
public class UnityDependencyResolver : DefaultDependencyResolver
{
private readonly IUnityContainer _Container;
public UnityDependencyResolver (IUnityContainer container)
{
_Container = container;
//edit to add
container.RegisterInstance<IJavaScriptMinifier>(NullJavaScriptMinifier.Instance);
}
public override object GetService(Type serviceType)
{
return base.GetService(serviceType) ?? _Container.Resolve(serviceType);
}
public override IEnumerable<object> GetServices(Type serviceType)
{
return base.GetServices(serviceType) ?? _Container.ResolveAll(serviceType);
}
}
が、私は私はあなたが、最初の基本解像度をしようと理由として少し混乱しています、それはSignalR.Infrastructure.IJavaScriptMinifier
Unityで 'IJavaScriptMinifier'の実装に登録しましたか? –
これを投稿した後に試しましたが、ハックのように感じました。 (私は方法を示すために投稿を編集する)。私はそれを明示的に使用していないし、それはSignalRインターフェイスだ。 – timDunham
あなたのアプリケーションで明示的に使用していないことがあります。しかし、あなたのインフラストラクチャがそれに依存している場合、SignalRは 'DependencyResolver'を使って' IJavaScriptMinifier'の実装を取得します。これをコンテナに登録する必要があります。私はリゾルバのコンストラクタの中に登録するのではなく、あなたのアプリケーションのアプリケーションルートにある他のすべての依存関係と一緒に登録します。 –