我该怎么办?或者有更好的方法我应该这样做吗?
也许更具体的想象方式是,我希望有一个接受哺乳动物列表的UI页面,然后通过反射获取该Mammal派生类的公共属性来获取/设置值。
列表成员保证全部属于同一类型。我想我可以将它转换为DataTable或其他东西,但我在这里使用现有的类集。 这些强类型列表已经来自已建立的类,所以我无法使用List<哺乳动物>在他们的起源。 我是以编程方式从对象属性生成UI表单。我不想制作一个MonkeyForm,DogForm,GiraffeForm,CowForm。我只是想制作一个MammalForm并将其传递给任何列表。
class Monkey : Mammal {};
class Dog : Mammal {};
class Cage
{
[AnimalCollection(true)]
List<Monkey> Monkeys;
};
class Kennel
{
[AnimalCollection(true)]
List<Dog> Dogs;
};
System.Reflection.PropertyInfo prop = myCageInstance.GetAnimalCollectionViaAttribute();
// We have the PropertyInfo now of our List<Monkey>.
// Convert it to List<Mammal> so we can pass it to our UI page