我可能想要太多,但我的情景是
public dynamic CreateConfigObject(JobConfigurationModel config) {
dynamic configObject = new { };
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};
return configObject;
}
Run Code Online (Sandbox Code Playgroud)
当然,它失败了,configObject.Git因为这个属性不存在.我希望能够在运行时添加任意数量的属性,而不需要预先知道属性的数量和名称;
这种情况在C#中是否可能,或者我的JavaScript想象力开始伤害我?:)
SLa*_*aks 35
dynamic 允许对强类型对象进行松散类型的访问.
您应该使用ExpandoObject该类,它允许对内部字典进行松散类型的访问:
dynamic configObject = new ExpandoObject();
configObject.Git = new GitCheckout {
Repository = config.Github.Url
};
Run Code Online (Sandbox Code Playgroud)