使用反射从元数据类获取属性属性



我有一个LINQ生成的类叫做Project。

我想给生成的属性添加一些属性,所以我定义了一个带有MetadataType属性的部分类。

[MetadataType(typeof(Project_HiddenProps))]
public partial class Project : IProject
{
    // There are also a few additional properties defined here.
}
public class Project_HiddenProps
{
    [HiddenColumn]
    public System.Guid Id { get; set; } 
    // Id is an auto-generated property that I've added a custom attribute to
}

之后,我使用反射来获取这个属性的属性。

var customAttributes = prop.GetCustomAttributes(false);

我只得到一个类型为System.Data.Linq.Mapping.ColumnAttribute的属性。我的HiddenColumn属性不包括在集合中。我的问题是如何使用反射获得这些元数据属性。

您可以使用约定方法反映另一个类:

var type = Type.GetType(entityType.FullName + "_HiddenProps," + entityType.AssemblyQualifiedName);
type.GetProperty("Id").GetCustomAttributes(false);

好友类不能自动与核心组件合并。这只用于内部框架元数据(假设这是MVC,或者可能是动态数据?)

正如@CyanLite在评论中提到的,你可以使用Meta类从元数据属性描述在这里(链接Cyan添加)。

相关内容

  • 没有找到相关文章

最新更新