首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET反射 - 如何从ParameterInfo中获取"真实"类型

在.NET中,反射是一种在运行时检查和操作对象的技术。通过反射,您可以获取对象的类型、方法、属性等信息。ParameterInfo类是.NET框架中的一个类,它提供了有关方法参数的信息。要从ParameterInfo中获取"真实"类型,您可以使用以下方法:

  1. 首先,获取方法的参数信息。
代码语言:csharp
复制
MethodInfo methodInfo = typeof(YourClass).GetMethod("YourMethod");
ParameterInfo[] parameters = methodInfo.GetParameters();
  1. 然后,遍历参数列表并获取参数的类型。
代码语言:csharp
复制
foreach (ParameterInfo parameter in parameters)
{
    Type parameterType = parameter.ParameterType;
    Console.WriteLine("Parameter Type: " + parameterType.FullName);
}
  1. 如果您需要获取泛型参数类型,可以使用以下方法:
代码语言:csharp
复制
if (parameterType.IsGenericType)
{
    Type[] genericArguments = parameterType.GetGenericArguments();
    foreach (Type genericArgument in genericArguments)
    {
        Console.WriteLine("Generic Argument Type: " + genericArgument.FullName);
    }
}

这样,您就可以从ParameterInfo中获取"真实"类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#反射

Reflection,中文翻译为反射。         这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型 (class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:         Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该类型的实例。 Type类可以获得对象的类型信息,此信息包含对象的所有要素:方法、构造器、属性等等,通过Type类可以得到这些要素的信息,并且调用之。 MethodInfo包含方法的信息,通过这个类可以得到方法的名称、参数、返回值等,并且可以调用之。 诸如此类,还有FieldInfo、EventInfo等等,这些类都包含在System.Reflection命名空间下。

02

模拟ASP.NET Core MVC设计与实现

前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码,7个对象——让你了解ASP.NET Core框架的本质》这篇文章思路剖析一下MVC框架”。对于ASP.NET Core MVC框架的涉及和实现,说难也难,毕竟一个Model Binding就够很多人啃很久,其实说简单也简单,因为整个流程是很清晰的。ASP.NET Core MVC支持基于Controller和Page的两种编程模式,虽然编程方式看起来不太一样,底层针对请求的处理流程其实是一致的。接下来,我同样使用简单的代码构建一个Mini版的MVC框架,让大家了解一下ASP.NET Core MVC背后的总体设计,以及针对请求的处理流程。[源代码从这里下载]。

03
领券