動的変数を使用して、匿名型を返すメソッドの結果をテストするという狡猾なアイデアがありました。具体的には、jsonが次のように見えるJsonResultを返します。
{ "newData" : [ 1120741.2697475906,
826527.64681837813
],
"oldData" : [ 1849870.2326665826,
1763440.5884212805
],
"timeSteps" : [ 0,
4.8828124999999998e-10
],
"total" : 2
}
匿名タイプを取得するJSonResultを読み取ることができます。これが私のコードです:
var jsonResult = controller.GetChangeData(1) as JsonResult;
dynamic data = jsonResult.Data;
Assert.AreEqual(2, data.total); // This works fine :)
しかし、たとえば「newData」を取得するにはどうすればよいですか?このコード...
var newData = data.newData;
System.Linq.Enumerable.WhereSelectArrayIteratorを取得しますが、doubleの配列として使用できるようにするにはどうすればよいかわかりません。
double []としてキャストしてみましたが、うまくいきません。
余談ですが、プロパティがダイナミックに定義されているかどうかを簡単に確認できますか?