1

我正在使用 PostSharp 向我的属性添加一些编译时逻辑 - 在一次情况下[IndexedCategory ("CatName", CatIndex)]。问题来了,因为IndexedCategory源自CompoundAspect- 它具有合理数量的命名参数。

有什么方法可以防止这些被智能访问/显示?

干杯

4

2 回答 2

1

我尝试了一些事情......让它不编译的一种可靠方法是将属性重新声明为过时或带走setter - 不过不好。

我尝试了其他一些设置(不可浏览,标记为不可变*),但没有多大帮助:

[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不能为一个属性设置,即使它可以在基础上。哈克和丑陋。

于 2009-10-22T04:20:36.207 回答
1

我认为你应该重新考虑你的设计。我不确定继承是否可行,也许组合会更好地满足您的需求。在不了解您要完成的工作的情况下,很难给出具体的示例,但是如果您不需要基类的属性,为什么要从它继承呢?

于 2009-10-22T03:30:51.437 回答