C# - 動的キーワードを無効にします
-
04-10-2019 - |
質問
.NET 4の「ダイナミック」キーワードの使用を無効にする方法はありますか?
VS2010のコード分析機能には、動的キーワードが使用されている場合、ビルドに失敗するルールがあると思いましたが、問題はありませんでした。
解決
それはC#4.0言語の一部なので、実際にはありません。
使用できます fxcop しかし、それを探して、それが遭遇した場合にビルドに失敗します。
スタイル警官は代わりに機能するかもしれません:
http://code.msdn.microsoft.com/sourceanalysis
同じ問題と、スタイル警官がどのように答えであるかについて話しているリンクがあります。また、FX COPに動的キーワードを潜在的に探す方法についての投稿もありますが、完璧ではありません。
http://social.msdn.microsoft.com/forums/en/vstscode/thread/8ce407ba-bdf7-422bbbcd-ca4701c3a76f
他のヒント
ターゲット.NET 1.0? :-)
または、コードレビューを行います。
(または、あまり面倒ではないため、ダイナミックの使用を許可するためにカスタムFXCOPまたはCAルールを書くのは非常に簡単なはずです)
今、C ++マクロを殺すだけではありませんか? :-)
動的なキーワードは悪ではありませんが、それを使用することは可能性があります。
それは、実行時にしか見つけることができるコードエラーにつながります。これは、どんな犠牲を払っても避けるべきです。ランタイムエラーは悪いです。コンパイル時間エラーは良いです。
次のようなものを使用して、独自の基準を設定できます。http://joel.fjorden.se/static.php?page=codestyleenforcer
参照を削除します Microsoft.CSharp.dll
, 、そして、私は多分すべての用途だと思います dynamic
コンパイルに失敗します。
ダイナミックなキーワードに対するこの不合理な恐怖が何のためであるかを理解しているかどうかはわかりません。匿名変数よりもこのタイプのヒステリーがあり、.NET 3.5のVARキーワードは、正当な静的に定義されたタイプであるため、ばかげていました。
ダイナミックキーワードは非常に専門的な目的を果たします。理由を理解せずに使用することを望んでいる人がいる理由はわかりません。ただし、動的キーワードを含む.NET 4の新機能のいくつかを説明する1チーム会議で、発生するのを防ぐことができます。私はあなたがチームの先輩またはシニアのリードであると思います。彼らが最初にあなたに会うためにダイナミックなキーワードを使用する必要があると感じた場合、チームを伝えるのは非常に簡単なはずです。
これは、COM Interopアクティビティを書いていないため、動的キーワードを使用する可能性が低いので、チームに与えた指示でした。そして、私はあらゆるタイプのダイナミックプロキシ使用をLinfuやCastleなどの確立されたライブラリに延期し、動的キーワードを使用または使用しないように動的プロキシの実装を残します。