私は以下のナンシーモジュールを持っています。NancyのJSONリクエスト本体を文字列プリミティブ変数にバインドする方法は?
public class MyFooTestModule : NancyModule
{
public MyFooTestModule()
{
Post["/text"] = _ =>
{
//string myNewText = this.Bind<string>(); // Fails, because string has no parameterless constructor
string myNewText = Request.Body.AsString();
return Response.AsJson(myNewText);
};
}
}
ここで、変数string
にバインドします。私が代わりにRequest.Body.AsString()
を使用する場合は
System.MissingMethodException: No parameterless constructor defined for this object.
、文字のエスケープが正しく動作していないと私は複数で終わる:私は例えばthis.Bind<int>()
を使用すると、実行時に、私は私に言った例外を取得するので、しかし、私は、this.Bind<string>()
を使用することはできません私の変数の引用符とエスケープされたバックスラッシュ。私は、クライアントからJavaScriptの文字列
"Hello\r\nWorld Foo!"
を投稿するときより正確
は、私は、サーバーからのエコーJavaScriptの文字列
"\"Hello\\r\\nWorld Foo!\""
を受けます。
プリミティブstring
変数にJSONのリクエストボディをバインドするために、なぜ正しいとは何ですか? JavaScriptのクライアントで使われている変数string
を交換するだけで、無駄なコンテナクラスにすべてのプリミティブ型をラップしたくありません。