Nancy 示例应用程序中的 Lambda 错误
Lambda Error in Nancy Sample Application
我在尝试使简单的 Nancy 示例程序正常工作时遇到错误,这让我有些困惑。
namespace NancyServer {
using Nancy;
public class ServerApi : NancyModule {
public ServerApi() {
Get["/"] = _ => "Hello World";
}
}
}
Visual studio 2013 pro 在我的路线中对 lambda 犹豫不决。
_ => "Hello World";
我也试了其他几种表达方式,都是同样的问题。
Get["/products/{id}"] = _ => {
System.Console.WriteLine( "test" );
};
上面的代码片段也是直接从 Nancy wiki 中提取的。
Intellisense 强调了 lambda 赋值 _ =>
并表示委托不接受一个参数。如果我尝试构建,我会收到三个错误。
Error 1 Delegate 'System.Func<dynamic,System.Threading.CancellationToken,System.Threading.Tasks.Task<dynamic>>' does not take 1 arguments
Error 2 Cannot implicitly convert type 'string' to 'System.Threading.Tasks.Task<dynamic>'
Error 3 Cannot convert lambda expression to delegate type 'System.Func<dynamic,System.Threading.CancellationToken,System.Threading.Tasks.Task<dynamic>>' because some of the return types in the block are not implicitly convertible to the delegate return type
我已经在谷歌上搜索了几个小时,但无法弄清楚这里发生了什么。这是环境错误吗?会不会出现某种命名空间问题?我已将 Nancy 和 Nancy.Hosting.Self 作为依赖项添加到我的项目中。项目中唯一的其他代码是自我托管服务的简单主代码。
namespace NancyServer {
using System;
using Nancy.Hosting.Self;
public class ServerMain {
static void Main( string[] args ) {
var nancyHost = new NancyHost( new Uri( "http://localhost:25000" ) );
nancyHost.Start();
Console.WriteLine( "Server running..." );
Console.ReadKey();
nancyHost.Stop();
}
}
}
我在 VS2013 pro 中直接通过 Nuget 添加了 Nancy 和 Nancy.Hosting.Self。
像这样更改它:
Get["/"] = (params,token) => Task.FromResult<dynamic>("Hello World");
Nancy v2.0.0 现在完全异步了。
我在尝试使简单的 Nancy 示例程序正常工作时遇到错误,这让我有些困惑。
namespace NancyServer {
using Nancy;
public class ServerApi : NancyModule {
public ServerApi() {
Get["/"] = _ => "Hello World";
}
}
}
Visual studio 2013 pro 在我的路线中对 lambda 犹豫不决。
_ => "Hello World";
我也试了其他几种表达方式,都是同样的问题。
Get["/products/{id}"] = _ => {
System.Console.WriteLine( "test" );
};
上面的代码片段也是直接从 Nancy wiki 中提取的。
Intellisense 强调了 lambda 赋值 _ =>
并表示委托不接受一个参数。如果我尝试构建,我会收到三个错误。
Error 1 Delegate 'System.Func<dynamic,System.Threading.CancellationToken,System.Threading.Tasks.Task<dynamic>>' does not take 1 arguments
Error 2 Cannot implicitly convert type 'string' to 'System.Threading.Tasks.Task<dynamic>'
Error 3 Cannot convert lambda expression to delegate type 'System.Func<dynamic,System.Threading.CancellationToken,System.Threading.Tasks.Task<dynamic>>' because some of the return types in the block are not implicitly convertible to the delegate return type
我已经在谷歌上搜索了几个小时,但无法弄清楚这里发生了什么。这是环境错误吗?会不会出现某种命名空间问题?我已将 Nancy 和 Nancy.Hosting.Self 作为依赖项添加到我的项目中。项目中唯一的其他代码是自我托管服务的简单主代码。
namespace NancyServer {
using System;
using Nancy.Hosting.Self;
public class ServerMain {
static void Main( string[] args ) {
var nancyHost = new NancyHost( new Uri( "http://localhost:25000" ) );
nancyHost.Start();
Console.WriteLine( "Server running..." );
Console.ReadKey();
nancyHost.Stop();
}
}
}
我在 VS2013 pro 中直接通过 Nuget 添加了 Nancy 和 Nancy.Hosting.Self。
像这样更改它:
Get["/"] = (params,token) => Task.FromResult<dynamic>("Hello World");
Nancy v2.0.0 现在完全异步了。