我试图从属性构造函数中确定属性所涉及的属性的类型。更具体我正在寻找包含该属性的类。
我当前的构造函数如下所示:
public IndexedCategoryAttribute(Type DefiningClass, String HeaderText, int Index)
{
this._definingClass = DefiningClass;
但我希望它看起来像:
public IndexedCategoryAttribute(String HeaderText, int Index)
{
PropertyInfo Info = ???
this._definingClass = Info.DeclaringType;
我相信这会为属性的用户提供更安全的代码,因为目前它在Attribute定义中需要'typeof(MyClass)',这会打开提供错误类型的可能性吗?
有关详细信息,我将其与propertygrid一起使用。该类型在static Dictionary<Type, Dictionary<String, int>>
中用于将类别分组到与其相关的类。
答案 0 :(得分:3)
我不认为属性在实例化时可以知道它们所关联的类型或属性。
关系走向另一条道路:
属性不具有“拥有”类型。
构建网格时,应该按照建议的方向进行扫描。对于集合中的每种类型,您可以反映以确定附加到该类型的属性(或深入到属性上的属性),如果这些属性是您的类别属性,则添加到字典中。