c# - 将属性添加到动态对象 .NET

标签 c# .net dynamic

我可能想要太多,但我的场景是

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/

相关文章:

c# - BASS WASAPI BPMCounter

.net - 未处理的异常:System.Configuration.ConfigurationErrorsException:无法识别的元素“服务”。嵌套ConfigurationElementCollection

C# 将类作为参数传递给方法并在其中调用静态方法

php - 动态为mysql查询中的所有字段名分配别名

c# - Service Fabric 无状态服务行为

C# 泛型 - 试图找到模式的名称

c - scanf动态分配

c - C 中包含动态结构数组的结构的 Realloc

c# - 如何将 json 对象传递给 mvc Controller

c# - 如何通过Javascript检查CheckBoxList的值