«динамическое» ключевое слово и данные JSON

Метод действия в моем приложении ASP.NET MVC2 возвращает объект JsonResult, и в моем модульном тесте я хотел бы проверить, действительно ли возвращенный объект JSON содержит ожидаемые значения.

Я попробовал это:

1. dynamic json = ((JsonResult)myActionResult).Data;
2. Assert.AreEqual(JsonMessagesHelper.ErrorLevel.ERROR.ToString(), json.ErrorLevel);

Но я получаю RuntimeBinderException «объект» не содержит определения для «ErrorLevel».

Однако, когда я помещаю точку останова в строку 2 и проверяю динамическую переменную json (см. рисунок ниже), очевидно, что содержит строку ErrorLevel и имеет ожидаемое значение, поэтому, если связыватель времени выполнения не играл смешно, тест прошел бы.

Snapshot of the Locals debugger window

Что я не получаю? Что я делаю не так и как это исправить? Как я могу выполнить проверку утверждения?

8
задан Peter Perháč 6 January 2011 в 11:51
поделиться