我在运行时使用反射进行了一些类型分析。如果我有一个 MethodInfo 实例,
我如何确定这是一个“真实”的方法还是一个属性的 getter/setter 方法?如果它是一个属性(property),我怎样才能找到它的托管 PropertyInfo?
最佳答案
Ecma 335 指定(但不要求)编译器使用 get_/set_ 前缀(第 22.28 章)。我不知道任何违反该建议的语言。让它变得容易:
public static PropertyInfo GetPropFromMethod(Type t, MethodInfo method) {
if (!method.IsSpecialName) return null;
return t.GetProperty(method.Name.Substring(4),
BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
}
关于.net - 从 getter/setter 的 MethodInfo 中查找托管 PropertyInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/520138/