Добавить свойство в динамический объект .NET.
Я, вероятно, хочу слишком много, но мой сценарий
public dynamic CreateConfigObject(JobConfigurationModel config) {
dynamic configObject = new { };
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};
return configObject;
}
Конечно, он терпит неудачу на configObject.Git
, так как это свойство не существует. Я хочу иметь возможность добавлять любое количество свойств во время выполнения, без предварительного знания количества и имен свойств;
Является ли такой случай возможным в С# вообще, или мое плохое воображение в JavaScript начинает меня болеть?:)
Ответы
Ответ 1
dynamic
позволяет свободно вводить доступ к сильно типизированным объектам.
Вы должны использовать класс ExpandoObject
, который позволяет свободно вводить доступ ко внутреннему словарю:
dynamic configObject = new ExpandoObject();
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};