クラスでコンポーネントデザイナを無効にするには、[System.ComponentModel.DesignerCategory( "")]属性を追加するのは簡単ですが、どのクラスでも機能しませんどの世代においてもこのクラスから派生したものです。たとえば、次世代の派生クラスでデザイナを無効にする方法
[System.ComponentModel.DesignerCategory("")]
public class A:ServiceBase { } //Designer is disabled here
public class B:A {} //Designer is enabled here
[System.ComponentModel.DesignerCategory("")]
public class B:A {} //Designer is enabled here too
[System.ComponentModel.DesignerCategory("Code")]
public class B:A {} //Designer is enabled even here
これはもちろん、他の世代および順列で発生します。例えば。
//Whatever attribute here
public class C:B {} //Designer is enabled here
これまで誰もそれを取り除こうとしましたか?第1世代で明示的に無効になっていても、コンポーネントモデルがデザイナーサポートを追加しようとする理由は何ですか?
は、そのような挙動の理由は、参照されるアセンブリをキャッシュしているあなたに
これらのクラスがどのアセンブリに存在するか、それらがソリューションの一部であるかどうかは、明確ではありません。ツールボックスの自動集計設定が優先されます。 –
これは言及していません。同じアセンブリ内のfベースクラスと派生クラスのどちらか、またはそれらが異なるアセンブリビヘイビア内にある(同じ基本クラスのみ(ServiceBaseから直接派生したもの)にデザイナーはありません) – Tamir