2014-01-19 72 views
1

我試圖注入Signalr依賴與Funq D.I.SignalR Funq依賴

這個過程很好解釋here我試着也跟着this的問題。

Ninject版本工作得很好。

現在我想將其轉換爲使用該gist爲FunqDependencyResolver一個Funq版本。 但這Funq version不起作用,並給出了「System.MissingMethodException:沒有爲此對象定義的無參數構造函數」,應該是因爲它沒有註冊依賴關係。

這是因爲Ninject版本解決方法?

回答

3

我們使用溫莎,但是這個過程是任何國際奧委會相同的:

首先創建您的解析器,從signalR DefaultDependencyResolver繼承:

public class CustomContainerResolver: DefaultDependencyResolver 
{ 
     public CustomContainerResolver(IocContainer instance) 
     { 
      _instance = instance; 
     } 

     public override object GetService(Type serviceType) 
     { 
      return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetService(serviceType) : base.GetService(serviceType); 
     } 

     public override IEnumerable<object> GetServices(Type serviceType) 
     { 
      return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetAllInstances(serviceType): base.GetServices(serviceType); 
     } 
} 

在啓動:

var signalrDependency = new CustomContainerResolver(container); 

那麼像往常一樣

app.MapSignalR(hubConfiguration); 
+1

我掛在我原來的問題使用的Funq依賴解析器,它也是非常相似的Ninject一個與Funq缺少的東西可以正常使用 https://gist.github.com/aaronlerch/5345587 顯然。 – Ronnie