Я строю игру, и есть базовое наследование:
GameObject
является базовым классом, имеет виртуальный метод с именем Clone
PlatformObject
является производным от GameObject
, переопределяя метод Clone
У меня есть универсальный класс сериализатора / десериализатора для любого GameObject
или производных, определенных следующим образом:
public class XmlContentReaderBase<T> where T : GameObject
Мой класс XML Reader не знает о моем производном типе. У меня проблема с этой строкой:
T obj = serializer.Deserialize(input) as T;
return obj.Clone() as T;
Первая строка работает нормально и возвращает PlatformObject
, что правильно. Но вторая строка вызывает метод Clone
базового класса, GameObject
, что не то, что я хочу. Мне нужно вызвать PlatformObject.Clone
метод, как я могу это сделать?
Спасибо,
Может.