我想向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; }
}
}
答案 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;
}