2017-01-20 9 views
0

ASP.NET Web APIプロジェクトのテストの作成中に問題が発生しました。 1つの機能でpublic IHttpActionResult Get()私はreturn Json(new { str = argString, argumentOne = args1.ToArray(), argumentTwo= arg2.ToArray()});を返します。C#AnonymousTypeを汎用パラメータに変換する方法

今私はモックでテストを書こうとしています。var result = ctrl.Get() as JsonResult<MyType>;を実行した場合に利用できる結果の内容をチェックしたいと思いますが、タイプはありません。私がdebbugerでタイプを調べているとき、私はこれを持っています:{System.Web.Http.Results.JsonResult<<>f__AnonymousType4<string, typesOne[], typesTwo[]>>}。私はダイナミックにしようとしましたが、私が見つけた他の人たちと結びつけましたが、

誰かが私に説明しているものを私に説明し、何か良いもの(チュートリアル、ビデオ、ギブス)を説明することはできますか?

答えて

1

メソッドに使用するデータ型を作成します。例えば:

public class MyJsonResult 
{ 
    public string Str; 
    public object ArgumentOne; 
    public object ArgumentTwo; 
} 

(使用している配列のどんなタイプにArgumentOneArgumentTwoの種類を変更します。)

このようにそれを使用します。

return Json(new MyJsonResult() { 
     Str = argString, 
     ArgumentOne = args1.ToArray(), 
     ArgumentTwo = arg2.ToArray()}); 

次に、あなたがすることができますタイプを次のような汎用メソッドに入れてください:

var result = ctrl.Get() as JsonResult<MyJsonResult>; 
+0

エイア、私はそれについて考えて、それについても言及しました。私は、この方法でクラスのいくつかの素晴らしい量を作るように強制するので、それについていくつかのトリックがあったと思った:Dが、ありがとう! – user3613919

+0

@ user3613919さらに、タプルを使用することもできますが、同様のさまざまなケースでそれらを使用すると、コードが徹底的に文書化されていないとかなりの混乱を招く可能性があります。 – Abion47