c# - 我可以使用 PrivateObject 类或 Reflection 来访问私有(private)类中的字段吗?

标签 c# reflection

如果我有私有(private)类(class)

Class A
{
    public static string foo;
}

我可以使用反射来访问该静态字段吗?当然假设我无法更改代码...

我遇到的问题是该类是在与我不同的命名空间中定义的。

假设我位于 Test 命名空间中,并且我引用了带有 FOO 命名空间的 DLL。

   namespace FOO
   {
     Class A
     {
         public static string bar;
     }
   }

我想从命名空间 TEST 访问类 A 中的 bar 字段。

最佳答案

是的,可以。您需要获取Type - 如何获取取决于您的应用的确切性质; Assembly.GetType(string)例如,这将是一种选择。之后,您使用 Type.GetField 获取 FieldInfo,然后询问该字段的值,使用 null 作为目标,因为它是静态的字段。

关于c# - 我可以使用 PrivateObject 类或 Reflection 来访问私有(private)类中的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323419/

相关文章:

java - 使用 org.reflections 获取带注释的类方法

C# 将 long 转换为字符串

c# - 映射类中未映射的属性 (Fluent NHibernate 1.1)

c# - 在 SQL 中重新创建 .NET 舍入行为

c# - 检查字符前后是否有空格进行字符串拆分

c# - C#中各种try-catch有什么区别?

c# - 为程序集中的现有类定义默认构造函数

Java - 反射,转换到一个未知的对象?

Python - 动态调用具有动态数量参数的方法。反射?

java - 使用接口(interface)和反射 API 在运行时创建实例是 coSTLy 选项