using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DTS.Common.Behaviors { /// /// generic attribute to store string meta data on an object or enum /// public class StringMetaDataAttr : Attribute { public string MetaData { get; } internal StringMetaDataAttr(string attr) { MetaData = attr; } public static string GetStringMetaData(object o) { var mi = o?.GetType().GetMember(o.ToString()); if (null == mi || 0 == mi.Length) { return null; } if (GetCustomAttribute(mi[0], typeof(StringMetaDataAttr)) is StringMetaDataAttr attr) { return attr.MetaData; } return null; } } }