Допустим, у меня есть тип X
, который является абстрактным классом, например, public abstract class X
. Теперь предположим, что у меня есть тип A
, производный от типа Y
, например, public class A : Y
. И X
, и Y
имеют одинаковое определение:
public abstract class X
{
public string Name { get; internal set; }
public virtual void PrintName()
{
Console.WriteLine(Name);
}
}
public abstract class Y
{
public string Name { get; internal set; }
public virtual void PrintName()
{
Console.WriteLine(Name);
}
}
Я не могу ничего изменить внутри X
(Добавить интерфейс, ...). Также я не могу получить от X
, потому что программа автоматически загрузит его. Классы X
и Y
больше с полями, свойствами и множеством методов, но я сохранил их как можно меньше. Можно ли преобразовать A
в X
? Что-то вроде
X obj = (X)(new A())
Я уже пробовал: Json De / Seriliazation, используя динамику c X cls = (X)(new A() as dynamic);
. Я, вероятно, мог бы использовать TypeBuilder, но у меня нет опыта использования TypeBuilder.