[AttributeUsage(AttributeTargets.Property)]
[DebuggerDisplay("Name={Name}, Descr={Description}, Min={Min}, Max={Max}")]
public class DoublePropertyMetaData
: System.Attribute
{
public string Name { get; set; }
public string Description { get; set; }
public double Min { get; set; }
public double Max { get; set; }
public override string ToString()
{
string str = string.Format("Name={0}, Descr={1}, Min={2}, Max={3}",
Name, Description, Min.ToString(), Max.ToString());
return str;
}
}
public class PropertyTest
{
[DoublePropertyMetaData(Name = "Valve Flow Rate",
Description = "Rate of flow through inlet valve",
Max = 12345.1d, Min = 0.0d)]
public double ValveFlowRate { get; set; }
}
public class AttributesAsMetaDataTester
{
public void Test1()
{
DoublePropertyMetaData propMetaData = GetDoubleMetaData(typeof(PropertyTest));
Console.WriteLine("Result: " + propMetaData.ToString());
}
private static DoublePropertyMetaData GetDoubleMetaData(Type type)
{
PropertyInfo[] props = type.GetProperties();
DoublePropertyMetaData[] attributes = new DoublePropertyMetaData[0];
foreach (PropertyInfo prop in props)
{
attributes = (DoublePropertyMetaData[])prop.GetCustomAttributes(
typeof(DoublePropertyMetaData), false);
}
return attributes[0];
}
}
September 14, 2011
Using Attributes for Property Meta Data
Another simple example of using Attributes and reflection. This time to place meta data on a property
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment