2012-07-22 85 views
0

我試圖建立Ninject與SignalR在控制檯應用程序,但我得到一個:SignalR Ninject在控制檯應用程序(自託管)

system.missingMethodException而:此對象定義無參數的構造函數。

我的代碼如下所示:

static void Main(string[] args) 
{ 
    string url = "http://localhost:8081/"; 
    var server = new Server(url);       

    // Map the default hub url (/signalr) 
    GlobalHost.DependencyResolver = new NinjectDependencyResolver(Kernel);    
    server.MapHubs(); 

    // Start the server 
    server.Start(); 

回答

2

你需要創建服務器實例之前做到這一點:在服務器上

static void Main(string[] args) 
{ 
    GlobalHost.DependencyResolver = new NinjectDependencyResolver(Kernel); 

    string url = "http://localhost:8081/"; 
    var server = new Server(url);       

    // Map the default hub url (/signalr) 
    server.MapHubs(); 

    // Start the server 
    server.Start(); 

OR

設置的依賴解析器:

static void Main(string[] args) 
{ 
    string url = "http://localhost:8081/"; 
    var server = new Server(url, NinjectDependencyResolver(Kernel)); 

    server.MapHubs(); 

    // Start the server 
    server.Start(); 

在後一種情況下,您將無法使用GlobalHost進行廣播,但您可以直接使用服務器執行相同的操作。

相關問題