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...
}

0 ответов

Другие вопросы по тегам