gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:45:29 24 4
gpt4 key购买 nike

我正在编写一个访问独立数据存储中文件的单元测试。文件名存储在类中的私有(private) const 字符串中,因为我不会在整个应用程序的其他任何地方使用它。

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

string historyFileName = (string)history.GetField("ISOLATED_HISTORY_FILE");

最佳答案

使用可以传递 BindingFlags 并传递 BindingFlags.NonPublic | 的重载 | BindingFlags.Instance.

看看here .


更新

我以为你有一个领域。 Const 确实在编译时被文字替换。更改为 static readonly 并传递 BindingFlags.NonPublic | BindingFlags.Static.

如果你不能改变源就没有办法

关于c# - PrivateObject 类的 GetField() 方法可以访问 C# 4.0 中的私有(private) const 字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com