.net - 从 getter/setter 的 MethodInfo 中查找托管 PropertyInfo

标签 .net reflection methodinfo propertyinfo

我在运行时使用反射进行了一些类型分析。如果我有一个 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/

相关文章:

c# - 当我选择下拉菜单时显示按钮两次

Java反射和OOM错误

java - 使用java注释和反射获取java.lang.NullPointerException

c# - 检索在 Func 中执行的调用方法的名称

.net - 您可以从 MethodInfo 对象获取 Func<T> (或类似的)吗?

c# - ASP.NET Web API - 返回 CLR 对象或 HttpResponseMessage

.net - .net Framework的产品代码

.net - 默认 .NET 运行时版本

c# - DbContext.Set() 上的 LINQ

C# - 如何获取 MethodInfo 的实例?