说,classA
有私有字段A,B,C,D,E ..我想在{{1}内部构建一个私有(我相信我不能公开?)方法StringToProperty
} classA
返回A。
答案 0 :(得分:3)
首先,确定它可以是一种公共方法。如果您希望该方法不能公开,因为它调用的是私有的,那就不准确了。将公共方法/属性视为对底层私有成员的受控窗口。
因此,要检索属性,可以使用反射。
public string StringToProperty(string fieldName)
{
Type myType = this.GetType();
FieldInfo field = myType.GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance);
return Convert.ToString(field.GetValue(this));
}
点击此处了解更多信息:http://msdn.microsoft.com/en-us/library/system.reflection.fieldinfo.getvalue.aspx
应该这样做,但我警告你,反射可能会导致性能下降,具体取决于你加载的内容和频率。请确保它的性能足以满足您的需求,因为您可能需要对FieldInfo数据进行某种缓存。