私が働いている大規模なレガシ ASP.NET アプリケーションを継承しました。私たちの会社は、FxCop を使用してすべての主要なルール違反を修正することを望んでいます。現在、普及していると思われるルールは次のとおりです。
CA1405:COM 可視型の基本型は COM 可視型である必要があります
アプリケーション内のすべての ASP.NET ページ/コントロールがこの規則に違反しているようです。最初は理由がわかりませんでしたが、最終的には次の継承チェーンが原因であることに気付きました。
System.IDisposable → System.Web.UI.Control → System.Web.UI.TemplateControl → System.Web.UI.Page
IDisposable
また、次のように定義されていることにも気付きました。
[ComVisible(true)]
public interface IDisposable
{
void Dispose();
}
要約すると、すべての ASP.NET ページ/コントロールは から継承しIDisposable
、属性をIDisposable
持ってい[ComVisible(true)]
ます。これは、すべてのページ/コントロールがこの規則に違反することを意味します。
アプリケーションには何千ものページとコントロールがあり、何千もの違反があるため、これは私たちを悩ませています。「会社標準」の FxCop ルール セットがあるため、ルールを無効にすることはできません。FxCop は、アプリケーションのすべてのページにこの属性を追加することを望んでいるようですが、私は実際には興味がありません。
私の質問は、そもそもなぜ属性があるのですかIDisposable
?[ComVisible(true)]