У меня есть тип generi c, который в основном является оберткой для другого класса (для целей сериализации), ChildFolder<SomeType>
.
[Serializable]
public class ChildFolder<T>
{
public T value;
}
У меня есть ссылка на ChildFolder <>, который в настоящее время имеет тип object
. Мне нужно иметь доступ к .value этого объекта, независимо от того, что это за T - получить его как object
идеально. Я надеялся, что обобщенные типы c будут следовать правилам наследуемости класса параметров, чтобы это работало:
object obj = new ChildFolder<SomeClass>(); // (this is equivalent to what's coming in to the function as a parameter)
ChildFolder<object> chObj = (ChildFolder<object>)obj;
// and now chObj.value is of type object
Но эта строка дает мне InvalidCastException: Specified cast is not valid.
Как можно Я вписываю в ChildFolder, если не знаю, что такое <T>
? С другой стороны, как я могу получить доступ к .value без его ввода?