我可能想要太多,但我的场景是
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
};
关于c# - 将属性添加到动态对象 .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6698967/