Мне нужно Asp. net для десериализации свойства объекта с помощью указанного c производного класса.
Согласно документации Newtonsoft, я должен иметь возможность изменить JsonContract для базового класса Equipment .Shared.Model.SimCard. https://www.newtonsoft.com/json/help/html/ContractResolver.htm
Class Transmitter имеет свойство (Simcard) Equipment.Shared.Model.SimCard , но мне нужно десериализовать его как TlsModel. SimCard , в противном случае свойства TlsModel.SimCard отбрасываются во время десериализации.
public class TlsModelContractResolver : DefaultContractResolver
{
protected override JsonContract CreateContract(Type objectType)
{
JsonContract contract = base.CreateContract(objectType);
if (objectType == typeof(Equipment.Shared.Model.SimCard) )
{
contract.CreatedType = typeof(SimCard);
Console.WriteLine("Simcard CreateType is updated");
}
return contract;
}
}
При первой десериализации у меня есть строка журнала «Simcard CreateType обновлена», поэтому мой контракт учитывается десерализатор.
Но передатчик.SimCard по-прежнему Equipment.Shared.Model.SimCard , а не TlsModel.SimCard , как я ожидал.
Я что-то пропустил?