簡體   English   中英

使用反射從元數據類中獲取屬性屬性

[英]Using reflection to get property attributes from a metadata class

我有一個名為Project的LINQ生成類。

我想為生成的屬性添加一些屬性,因此我使用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添加的鏈接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM