添加多个类级别属性c#

时间:2016-01-25 23:58:24

标签: c#

我想向Node添加一个属性,该属性对于用户来说是可选的。 如何添加除已存在的属性之外的其他类级别属性?

VirtualName - 这将使用户能够根据需要为节点命名。 我已经实现了ClassName。我最终会想要添加其他类对象级别属性,如颜色和图标。

namespace NodeDemo
{
    [NodeAttribute("DemoNode")]
    public class DemoNode
    {
        [InputPinAttribute("Radius")]
        public int Radius { get; set; }

        [InputPinAttribute("Width Segments")]
        public int WidthSegs { get; set; }

        [InputPinAttribute("Height Segments")]
        public int HeightSegs { get; set; }
    }
}

1 个答案:

答案 0 :(得分:1)

只需添加任意数量的内容:

namespace NodeDemo
{
    public class ColorAttribute : Attribute
    {
        public string Color {get;set;}
        public ColorAttribute(string color)
        {
            Color = color;
        }
    }

    [NodeAttribute("DemoNode")]
    [ColorAttribute("Red")] 
    public class DemoNode
    {
      ... 
    } 
} 

您可以使用Type.Attributes属性

进行后期检查属性
string color = null;
Type myType = typeof(DemoNode);
ColorAttribute cAttribute = (ColorAttribute)Attribute.GetCustomAttribute(myType, typeof(ColorAttribute));
if (cAttribute != null)
{
    color = cAttribute.Color;
}