我可能想要太多,但我的情况是
public dynamic CreateConfigObject(JobConfigurationModel config) {
dynamic configObject = new { };
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};
return configObject;
}
当然,由于此属性不存在,因此在
configObject.Git
上失败。我希望能够在运行时添加任意数量的属性,而无需事先了解属性的数量和名称;这样的情况在C#中是否完全可能,或者我不良的JavaScript想象力开始伤害我? :)
最佳答案
dynamic
允许对强类型对象的松散类型访问。
您应该使用ExpandoObject
类,该类允许以松散类型访问内部字典:
dynamic configObject = new ExpandoObject();
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};