У меня есть класс, который использует общие свойства. Например:C# Использование отражения с общим свойством
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 может быть любой класс, и как можно бросить класс MyGenericProperty без знающего T путем отражения в
var obj = (MyGenericProperty<>)aProperty.GetValue(sourceobject, null);
Благодарить за помогает.