当前位置:编程学习 > C#/ASP.NET >>

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

假设A.dll在系统运行时已经加载并对静态变量B赋值。
我要怎么通过反射查到A中的静态变量B的值。 --------------------编程问答-------------------- 静态变量必须依附一个类而存在。

你可以用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);
        }
    }
--------------------编程问答--------------------
引用 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);
        }
    }

学习了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,