扩展方法:
Response.AsJson
Response.AsXml
从约束器调用时工作正常,如:
public class TweetModule : NancyModule
{
public TweetModule()
: base("/")
{
Post["/{action}.json/"] = parameters =>
{
return Reponse.Asjson(new {output:parameters.action}); // OK
}
}
}
但是当我从这样的函数调用它时:
public class TweetModule : NancyModule
{
public TweetModule()
: base("/")
{
Post["/{action}.{format}/"] = parameters =>
{
return GetResponse( parameters.action,parameters.format); // Error
}
}
public Response GetResponse(string action,string format)
{
if (format == "json")
return Response.AsJson(new {output:action}); // error
else
return Response.AsXml(new {output:action}); // error
}
}
我得到了这个例外:
<> f__AnonymousType0`1 [System.String]无法序列化,因为它 没有无参数构造函数。
任何建议?
答案 0 :(得分:3)
Na的效果很好。问题是您捕获的参数被称为 {fortmat} ,然后您传递 parameters.format ,由于拼写错误而永远不会被捕获
我必须指出,你的代码甚至不会编译,因为函数不是C#中的有效关键字,我只是假设你实际意味着要说 public 强>相反。
希望这有帮助