Как было предложено @TrueWill и @Marc Gravell, которые также упомянули это сообщение в блоге
. Так как это для модульного тестирования, вы можете использовать InternalsVisibleTo. См. Анонимные типы являются внутренними, C # 4.0 Динамический Осторожно! Благодаря @MarcGravell для указания, что анонимные объекты являются внутренними!
Нижняя строка: настройте отображение [assembly: InternalsVisibleTo("foo")]
, если вы хотите поделиться анонимным объектом с одной сборки на другую. В случае OP это будет вопрос об установке этого в проекте MVC-контроллера, ссылаясь на тестовый проект . В моем конкретном случае, наоборот (поскольку я передаю анонимный объект из моего тестового проекта в проект «производственный код»).
Самый простой способ в этом «другом проекте» для его использования, безусловно, нужно направить его на dynamic
, а затем просто использовать свойства, как обычно. Это действительно работает, никаких проблем.
Итак, нижняя строка: я чувствую, что ответ Марка Гравелла немного неверен; это может быть сделано ясно ( iff ваши проекты могут быть модифицируемы вами, поэтому вы можете соответствующим образом настроить отображение InternalsVisibleTo, и это не создает проблемы по какой-либо другой причине).