Мне нужно найти способ извлечения свойств из экземпляра универсального класса, где общий тип аргумента является производным классом. Например:литье базового базового класса из производного общего класса в C#
Class A
{
public int data;
}
Class B : Class A { }
Class C : Class A { }
Class D : Class A { }
.
.
.
Class G<T>
{
T field
}
main()
{
object t = CallOuterService();
}
при условии, что т является экземпляр G экземпляра с одним из классов, вытекающих, есть способ доступа поля данных, не пытаясь бросить ко всем классам, происходящими?
* отредактировано - 1. поле данных является общедоступным 2. классы A, B, C ... G не обрабатываются моим кодом, все они являются интерфейсами с внешней службой. Я не могу изменить их в любом случае ...
просто используйте 'public int data'', что возвращает' CallOuterService' и почему вы его назначаете ' object'? – Grundy
Это действительно помогло бы, если бы вы показали короткую, но полную программу, демонстрирующую проблему, а не просто псевдокод. –
_classes A, B, C ... G не обрабатываются моим кодом, все они являются интерфейсами с внешней службой. Это классы или интерфейсы? – Grundy