以下代码失败:



我还尝试将 BindingFlags.Static 更改为 BindingFlags.Instance 并将实际实例作为第四个参数传递,但结果相同。
有什么办法可以解决这个问题吗?

using System.Reflection;

namespace TestApp {
    class Program {
        static void Main() {
            var flags = BindingFlags.GetProperty | BindingFlags.Static | BindingFlags.Public;
            var value = typeof(Example).InvokeMember("Value", flags, null, null, null);
        }
    }

    public sealed class Example {
        public static readonly string Value = "value";
    }
}

最佳答案

Example.Value 是一个字段,而不是一个方法。改用这个:

var value = typeof(Example).GetField("Value").GetValue(null);

关于c# - 使用 InvokeMember 检索静态属性值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5145582/

10-11 22:28
查看更多