PostSharpを使用して、属性にコンパイル時ロジックを追加しています[IndexedCategory ("CatName", CatIndex)]
。IndexedCategory
から派生するため、問題が発生しますCompoundAspect
。これには、適切な数の名前付きパラメーターがあります。
これらがインテリジェンスによってアクセス/表示されるのを防ぐ方法はありますか?
乾杯
PostSharpを使用して、属性にコンパイル時ロジックを追加しています[IndexedCategory ("CatName", CatIndex)]
。IndexedCategory
から派生するため、問題が発生しますCompoundAspect
。これには、適切な数の名前付きパラメーターがあります。
これらがインテリジェンスによってアクセス/表示されるのを防ぐ方法はありますか?
乾杯
デザインを考え直すべきだと思います。継承が進むべき道かどうかはわかりません。おそらく、作曲はあなたのニーズにより適しているでしょう。何を達成しようとしているのかを詳しく知らなければ、具体的な例を示すのは非常に困難ですが、基本クラスのプロパティが必要ない場合は、なぜそれを継承するのでしょうか。
私はいくつかのことを試しました...コンパイルされないようにする確実な方法の1つは、プロパティを廃止として再宣言するか、セッターを削除することです。
他のいくつかの設定(閲覧不可、不変とマーク*)を試しましたが、あまり役に立ちませんでした。
[ImmutableObject(true)] // I'm sure this used to toggle intellisense for attribs
public class FooAttribute : BarAttribute
{
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
[ReadOnly(true)]
public new string Name { get { return base.Name; } }
}
とにかく、上記でName
は、ベースに設定できても、属性に設定することはできません。ハッキーで醜い。