C# - отключить динамическое ключевое слово

Есть ли способ отключить использование "динамического" ключевого слова в.net 4?

Я подумал, что функция анализа кода в VS2010 может иметь правило проваливать сборку, если используется динамическое ключевое слово, но я не смог его уточнить.

5 ответов

Решение

Это часть языка C# 4.0, так что нет, не совсем.

Вы можете использовать FXCop, чтобы найти его и потерпеть неудачу при сборке, если он встретит его.

Стиль полицейский может работать вместо:

http://code.msdn.microsoft.com/sourceanalysis

Вот ссылка, рассказывающая о той же самой проблеме и о том, как стиль полицейский может быть ответом. Также есть пост о том, как заставить FX-полицейского потенциально искать динамическое ключевое слово, хотя оно и не идеально.

http://social.msdn.microsoft.com/Forums/en/vstscode/thread/8ce407ba-bdf7-422b-bbcd-ca4701c3a76f

Ключевое слово dynamic не является злом, но использовать его можно.

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

Вы можете использовать что-то вроде следующего, чтобы установить свои собственные стандарты. http://joel.fjorden.se/static.php?page=CodeStyleEnforcer

Удалить ссылку на Microsoft.CSharp.dllи я думаю, что, возможно, все использует dynamic не удастся скомпилировать.

Цель.net 1.0?:-)

Или делайте обзоры кода.

(Или, чтобы быть менее остроумным, должно быть довольно легко написать собственное правило FxCop или CA, чтобы запретить использование динамического)

Разве вы не могли бы просто убить макрос C++ прямо сейчас?:-)

Я не уверен, что понимаю, для чего этот иррациональный страх перед динамическим ключевым словом. Был такой тип истерики над анонимными переменными и ключевым словом var для.NET 3.5, за исключением того, что это было просто идиотизмом, так как это законные статически определенные типы.

Ключевое слово dynamic служит узкоспециализированной цели, и я не понимаю, почему кто-то захочет использовать его, не понимая, почему. Однако остановить это может быть решено с помощью одного совещания команды, объясняющего некоторые новые функции.NET 4, включая динамическое ключевое слово. Я предполагаю, что вы больше старший или старший руководитель команды; должно быть довольно легко сказать вашей команде, если они когда-либо чувствуют, что им НУЖНО использовать динамическое ключевое слово, чтобы увидеть вас ПЕРВЫМИ.

Это были именно те инструкции, которые я дал своей команде, поскольку я считаю маловероятным, что мы когда-либо будем использовать динамическое ключевое слово, потому что мы не пишем действия взаимодействия COM. И после этого я буду откладывать использование динамического прокси любого типа в установленной библиотеке, такой как Linfu или Castle, и оставляю им реализацию динамических прокси, чтобы использовать или не использовать ключевое слово dynamic.

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