我想我已经很接近解决这个问题了,但是我已经有一段时间没有取得进展了,除了四处打听之外别无选择。
我有一个GraphicsSettings
具有大量图形属性的类。这些属性有一个带有属性名称的占位符值,我将其用于比较循环。
比较循环是类内部的一个函数,位于图形属性数组和Stringreader
外部文本文件中的遍历行之间。
当循环找到图形属性的值与行中的一部分内容之间的匹配时,我想将行的整个值设置到图形属性中。
这是问题所在,我不知道如何从类中调用属性设置器而不专门输入它的名称,因为它是一个循环,所以我不能这样做。
我试过使用:
this.GetType().GetProperty(key).SetValue(this,line, null);
其中“key”是属性名称,“line”是行值。据我了解,这在从外部调用类对象来设置值时应该可以正常工作,但似乎完全反对使用这种方法从内部调用类。
我得到的只是一个
TargetInvocationException was unhandled
错误。并不奇怪,但我不知道如何解决这个问题。
所以我想它归结为:我如何通过使用字符串从属性所在的同一个类中访问属性?