6

可能重复:
C# 中最有用的属性

除了:

[DefaultValue(100)]
[Description("Some descriptive field here")]
public int MyProperty{get; set;}

还有哪些 C# Attributes 对 Properties 有用,在学习了这些之后,我觉得我错过了。

相关问题

C# 中最有用的属性

4

8 回答 8

7
[Obsolete("This is an obsolete property")]

这是我的最爱之一。允许您将属性/方法标记为过时,这将在构建时导致编译器警告(可选地,编译器错误)。

于 2008-10-16T20:28:25.117 回答
3

一些...

同步、内联等:

[MethodImpl]

组件型号:

[TypeDescriptor], [DisplayName], [Editor]

序列化:

[Serializable], [DataMember], [XmlElement], [XmlAttribute], [NonSerialized], etc

声明式安全:

[PrincipalPermission]

所有 COM 的东西......

于 2008-10-16T21:44:40.343 回答
2
[Browsable]

是我的最爱。( MSDN )

于 2008-10-16T20:26:59.347 回答
2

很长一段时间以来,我一直想要一个完整的 c# 属性列表,但从未在 MSDN 文档或任何地方找到一个列表。我认为这是他们文档中较弱的部分之一。

如果我想从 xml 序列化中排除一个属性,我使用 [XmlIgnore]。

于 2008-10-16T20:33:20.283 回答
1

如果您在多语言 UI中使用Description和,那么您可能会发现基于资源的版本很有用(反映自):CategorySystem.Windows.Forms

[AttributeUsage(AttributeTargets.All)]
internal sealed class SRDescriptionAttribute : DescriptionAttribute
{
    private bool replaced;

    public SRDescriptionAttribute(string description) : base(description)
    {
    }

    public override string Description
    {
        get
        {
            if (!this.replaced)
            {
                this.replaced = true;
                base.DescriptionValue = SR.GetString(base.Description);
            }
            return base.Description;
        }
    }
}

[AttributeUsage(AttributeTargets.All)]
internal sealed class SRCategoryAttribute : CategoryAttribute
{
    public SRCategoryAttribute(string category) : base(category)
    {
    }

    protected override string GetLocalizedString(string value)
    {
        return SR.GetString(value);
    }
}

SR适当的包装器在哪里ResourceManager

于 2008-10-16T21:14:19.953 回答
1

C# 属性属性

于 2008-10-16T20:27:41.827 回答
0

我经常在枚举中使用它。枚举中有“默认”或“未知”值,但您不一定希望绑定到控件,例如下拉菜单?添加自定义属性或使用现有属性来表示应该/不应该可见的项目。

我在具有事件代理和策略注入的框架上做了很多工作,而在使用额外的元数据或松散耦合的事件装饰事件时,属性是非常宝贵的。

有一些相当新的工具,例如 PostSharp ( http://www.postsharp.org/ ),您可以使用它们将行为封装在属性中。该网站上有几个很好的例子;令人惊讶的是,您可以通过这些模式编写代码变得多么简单。. .

于 2008-10-16T21:43:08.163 回答
0

LocalizableListBindable 对于自定义组件设计者来说可能很有趣。

于 2008-10-16T21:01:14.847 回答