以下代码失败:
我还尝试将 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/