[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