Использование динамического в 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 в вашей рабочей сборке, чтобы предоставить доступ к вашей тестовой сборке.

Другие вопросы по тегам