Simple.OData.Client Inheritance Issue
В настоящее время у меня возникла проблема при использовании https://github.com/object/Simple.OData.Client для получения объекта.
Вот вызов, используя экземпляр ODataClient
RecurringObjectView model = await client.For<RecurringObjectView>("RecurringObjects")
.Key(id)
.Expand(r => r.RecurrenceSetting)
.FindEntryAsync();
Я могу отслеживать данные, поступающие из API, и все хорошо. Ниже приведена выдержка из Json, возвращаемого сервером.
{
"RecurrenceSetting": {
"@odata.type":"#Namespace.Of.The.DailyRecurrenceSettingView",
"Id":16
// more settings...
}
// more values...
}
Проблема в том, что RecurrenceSetting
Объект является абстрактным, и, в свою очередь, выдает следующую ошибку...
Невозможно создать экземпляр типа
RecurrenceSettingView
у которого нет конструктора по умолчанию.
Для справки, вот выдержки из определений классов...
public class RecurringObjectView
{
public int Id { get; set; }
public virtual RecurrenceSettingView RecurrenceSetting { get; set; }
// loads more properties...
}
public abstract class RecurrenceSettingView
{
public int Id { get; set; }
// common recurrence setting properties...
}
public class DailyRecurrenceSettingView :
RecurrenceSettingView
{
// daily specific settings...
}