Использование динамического в C# для доступа к полю анонимного типа - возможно?
У меня есть метод контроллера:
public JsonResult CalculateStuff(int coolArg)
{
if(calculatePossible)
return Json(CoolMethod(coolArg));
else return Json(new { Calculated = false });
}
Теперь я хотел бы проверить это.
public void MyTest
{
var controller = GetControllerInstance();
var result = controller.CalculateStuff().Data as dynamic;
Assert.IsTrue(result.Calculated == false);
}
Это создает исключение RuntimeBinderException о том, что Calculated не определено. Есть ли способ добиться этого?
ОБНОВИТЬ
Следуя совету Джонса, я использовал InternalsVisibleTo, чтобы подружиться с моей тестовой сборкой. Все отлично работает Спасибо, Джон.
1 ответ
Решение
Вы можете сделать это, но только в пределах одной сборки. Анонимный тип является внутренним.
Это также должно быть хорошо, если вы используете InternalsVisibleTo
в вашей рабочей сборке, чтобы предоставить доступ к вашей тестовой сборке.