比如EF中我定义了这样一个实体:
[Table(Name = "MyTableName")] public class MyClass { }
现我想获取 MyTableName,可以这样来办:
using System.Data.Linq.Mapping; namespace MyEF { class Program { static void Main(string[] args) { string name = typeof(MyClass).GetAttributeValue((TableAttribute ta) => ta.Name); Console.WriteLine(name); Console.Read(); } } public static class AttributeExtensions { public static TValue GetAttributeValue<TAttribute, TValue>( this Type type, Func<TAttribute, TValue> valueSelector) where TAttribute : Attribute { var att = type.GetCustomAttributes( typeof(TAttribute), true ).FirstOrDefault() as TAttribute; if (att != null) { return valueSelector(att); } return default(TValue); } } [Table(Name = "MyTableName")] public class MyClass { } }