我有一个使用通用属性的类。例如:
class Person
{
    public MyGenericProperty<string> Field1
    {
        get { return field1; }
        set { field1 = value; }
    }
    private MyGenericProperty<string> field1= new MyInheritedGenericProperty<string>("Alan1");
}
我想在另一个类中使用这个类和反射,我有一个这样的方法
public void DoSomethingWithProperty(object sourceobject)
{
    foreach (var aProperty in sourceobject.GetType().GetProperties())
    {
        *if(aProperty.PropertyType == typeof(MyGenericProperty<>))*
        {
           *var obj = (MyGenericProperty<>)aProperty.GetValue(sourceobject, null);*
        }
    }
    return null;
}
我有两个问题
1- 如何对通用属性进行类型检查。在该示例代码中if(aProperty.PropertyType == typeof(MyGenericProperty<>))不起作用。
2- MyGenericProperty 的 T 可以是任何类,如何在不通过反射知道 T 的情况下将 MyGenericProperty 类转换为
var obj = (MyGenericProperty<>)aProperty.GetValue(sourceobject, null);
感谢您的帮助。