0

我正在尝试在控制台应用程序中使用 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();
4

1 回答 1

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();

或者

在服务器本身上设置依赖解析器:

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 进行广播,但您可以直接使用服务器来做同样的事情。

于 2012-07-22T19:37:56.883 回答