DynamicObject: это хорошее решение для насмешек? - PullRequest
2 голосов
/ 24 июня 2010

Я изучал DynamicObject в .NET 4.0 и задавался вопросом, будет ли этот тип хорошо подходить для создания фиктивных объектов.

Мокодирование кажется отличным способом использования DynamicObject, ноя что-то упустил?

  • Существуют ли какие-либо фреймворки, которые используют DynamicObject (в отличие от динамических прокси или перехвата) для насмешки?
  • Есть ли недостатки в использовании DyanmicObject для насмешек (помимо необходимости .NET 4.0 CLR)?

1 Ответ

3 голосов
/ 24 июня 2010

Самый большой недостаток, который я могу вспомнить, заключается в том, что вы можете вызывать буквально любой метод / свойство в мире для динамических типов.

например, подумайте, какого черта было бы обновить ваши тесты, если ваш API изменился - вы все равно все тесты скомпилируете, однако они все умрут с ошибками времени выполнения, если попытаются применить переименованные / удаленные методы.

Это, в сочетании с тем фактом, что вы теряете все Intellisense при работе с динамическими объектами, заставляет меня поверить, что динамическую библиотеку-макет будет сложнее использовать, чем что-то на основе прокси, например Rhino.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...