C# 怎么通过反射取得已经加载的DLL中的静态变量

howardtft 2013-09-10 04:14:43
假设A.dll在系统运行时已经加载并对静态变量B赋值。
我要怎么通过反射查到A中的静态变量B的值。
...全文
468 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oreoconansisu 2013-11-28
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
静态变量必须依附一个类而存在。 你可以用Assembly.GetType()找到包含这个静态变量的类 然后用type.GetFields找这个静态变量:

    class Program
    {
        public static int i = 2;
        static void Main(string[] args)
        {
            var v = typeof(Program).GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public).Single(x => x.Name == "i");
            object o = v.GetValue(null);
            Console.WriteLine(o);
        }
    }
学习了
threenewbee 2013-09-10
  • 打赏
  • 举报
回复
静态变量必须依附一个类而存在。 你可以用Assembly.GetType()找到包含这个静态变量的类 然后用type.GetFields找这个静态变量:

    class Program
    {
        public static int i = 2;
        static void Main(string[] args)
        {
            var v = typeof(Program).GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public).Single(x => x.Name == "i");
            object o = v.GetValue(null);
            Console.WriteLine(o);
        }
    }

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧