Revision: 17256
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 28, 2009 18:06 by jimfred
Initial Code
private struct TestStruct { #region Members to be display [DescriptionAttribute("an integer")] public int i; [DescriptionAttribute("a bool")] public bool b; // no DescriptionAttribute public bool b2; #endregion // Example usage: myStruct.Render(treeView1.Nodes); public void Render(TreeNodeCollection arg) { foreach (FieldInfo field in typeof(TestStruct).GetFields()) { DescriptionAttribute[] attributes = (DescriptionAttribute[])field.GetCustomAttributes(typeof(DescriptionAttribute), false); string description = attributes.Length>0 ? attributes[0].Description : field.ToString(); //AttributeCollection attributes = TypeDescriptor.GetProperties(field)[field.Name].Attributes; //DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)]; // Show something like "My integer, 123 (Int32, i)" string s = string.Format("{0}, {1} ({2}, {3})", description, // DescriptionAttribute field.GetValue(this), // value of field.FieldType.Name, field.Name // name of structure member ); arg.Add(s); } } };
Initial URL
Initial Description
I frequently need to create a struct to be displayed in an app. The DescriptionAttribute is used to display a member's description. Room for improvement: * nested structs/enums * Implement a TreeViewAble Interface
Initial Title
C# reflection to display a struct's members with their descriptions
Initial Tags
Initial Language
C#