Инициализация унаследованных структур в 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"
};
Если вы хотите сделать это в централизованном месте, я бы написал вспомогательный метод. Сгенерированный код является частичным, поэтому вы можете использовать эту функциональность для добавления методов к сгенерированным классам. Вы также можете использовать методы расширения или обычный старый вспомогательный статический метод, который является фабрикой для экземпляров.