PrivateObject类的GetField()方法可以访问C#4.0中的私有const字符串吗?

我正在编写一个单元测试来访问隔离数据存储中的文件.文件名存储在类中的私有const字符串中,因为我不在整个应用程序中的任何其他位置使用它.

但是,当我运行单元测试时,当我调用PrivateObject类实例的GetField(“fieldName”)方法时,我得到一个“未找到字段”错误.

string historyFileName = (string)history.GetField("ISOLATED_HISTORY_FILE");
使用可以传递BindingFlags并传递BindingFlags.NonPublic |的重载BindingFlags.Instance.

看看here.

UPDATE

我以为你有一个领域. Const在编译时会被文字替换.更改为静态只读并传递BindingFlags.NonPublic | BindingFlags.Static.

如果您无法更改源,那么就没有办法了

相关文章
相关标签/搜索