Инициализация унаследованных структур в Bond

У меня есть схема Бонда, которая (в идеале) будет иметь некоторые унаследованные поля:

struct Context
{
    10: required string thing;
    20: required string otherthing;
};

struct SampleEvent : Context
{
    20: required wstring evt;
};

и когда я создаю свой производный объект (SampleEvent) Я могу сделать это так:

        SampleEvent evt = new SampleEvent { evt = str };

но где я могу настроить инициализацию Context поля?

1 ответ

Решение

Поля базы наследуются и могут быть установлены так же, как поля производных:

var evt = new SampleEvent {
    evt = str,
    thing = "thing1",
    otherthing = "thing2"
};

Если вы хотите сделать это в централизованном месте, я бы написал вспомогательный метод. Сгенерированный код является частичным, поэтому вы можете использовать эту функциональность для добавления методов к сгенерированным классам. Вы также можете использовать методы расширения или обычный старый вспомогательный статический метод, который является фабрикой для экземпляров.

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