我正在尝试在控制台应用程序中使用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();
答案 0 :(得分:2)
您需要在创建Server实例之前执行此操作:
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进行广播,但您可以直接使用服务器执行相同的操作。