我需要使用相同的函数设置类的所有属性。目前我使用反射来获取所有属性并循环来设置它们的值。我知道所有的属性,没有任何动态发生。
这是我目前在构造函数中运行的代码:
foreach (PropertyInfo property in this.GetType().GetProperties())
{
// retreive the value and set it
property.SetValue(this, GetValue(field), null);
}
有没有办法在不使用反射的情况下做类似的事情?
答案 0 :(得分:4)
根据此处提供的信息,我并不知道。
那就是说,它确实提出了一个问题,你在做什么需要你这样做?为什么你需要在循环中遍历所有属性,你有多少?
更多细节可能会促使某人为您提供更好的解决方案。例如,什么属性在做什么?它们是否连接到一些可以在不使用反射的情况下更改的基础数据?如果你有很多离散属性,那么它们有很多不同的属性吗?
答案 1 :(得分:1)
void SetValues() {
this.Property1 = field1;
this.Property2 = field2;
this.Property3 = field3;
this.Property4 = field4;
}
我怀疑你的问题遗漏了什么。