Код: Выделить всё
[JsonDerivedType(typeof(DerivedClass1), "derivedClass1")]
[JsonDerivedType(typeof(Foo), "foo")]
public abstract class BaseClass
{
}
public class DerivedClass1 : BaseClass
{
}
public class Foo : BaseClass
{
}
Код: Выделить всё
[JsonDerivedType(typeof(DerivedClass1), "derivedClass1")]
//renamed Foo to Bar, also adjusted the type discriminator to bar
[JsonDerivedType(typeof(Bar), "bar")]
public abstract class BaseClass
{
}
public class DerivedClass1 : BaseClass
{
}
//renamed Foo to Bar
public class Bar : BaseClass
{
}
Поэтому при десериализации он должен десериализовать ЛИБО Bar или Foo в класс Bar, при сериализации класса он должен использовать текущее имя Bar.
Я знаю только "банальный" способ прочитать файл в память, выполнить базовую замену строки fileContent = fileContent.Replace(oldName, newName); и затем десериализовать строку fileContent.
Подробнее здесь: https://stackoverflow.com/questions/793 ... criminator
Мобильная версия