.net的反射中如何获取范型类型的名称?

问题描述

一个程序集的一个类中定义了一个范型属性:List<stirng>Member;我用反射加载该程序集获取该类型的定义后,如何把该属性的名称输出为:List<stirng>呢?

解决方案

解决方案二:
Typet=Assembly.Gettype("命名空间.类名")PropertyInfo[]pro=t.GetProperties();foreach(PropertyInfopinpro){Console.WriteLine(p.PropertyType);}

解决方案三:
privatestaticreadonlystringpath=ConfigurationManager.AppSettings["FactoryKey"].ToString();publicstaticIAdbannerCreateAdbanner(){stringclassname=path+".Adbanner";return(IAdbanner)System.Reflection.Assembly.Load(path).CreateInstance(classname);}

解决方案四:
Type[]types=Assembly.LoadFrom(@"路径xxx.dll").GetTypes();foreach(varitemintypes){Console.WriteLine(item.Name);foreach(varattrsinitem.GetProperties()){Console.WriteLine("t"+attrs.PropertyType+""+attrs.Name);}}

解决方案五:
范型采用以上的方法返回的是乱码呀?
解决方案六:
怎么会是乱码?
解决方案七:
Typet=Type.GetType("命名空间.类名");PropertyInfo[]pro=t.GetProperties();PropertyInfop=t.GetProperty("Member");stringtypeName=p.PropertyType.ToString();Microsoft.CSharp.CSharpCodeProviderccp=newMicrosoft.CSharp.CSharpCodeProvider();System.CodeDom.CodeTypeReferencenewCodeTypeReference=newSystem.CodeDom.CodeTypeReference(typeName);Console.WriteLine(ccp.GetTypeOutput(newCodeTypeReference));

解决方案八:
publicclassBase{publicvoidAA(){Typetype=this.GetType();stringaaa=type.Name;}}publicclassChild:Base{this.a();}

时间: 2024-12-22 10:02:02

.net的反射中如何获取范型类型的名称?的相关文章

Java范型深入理解,利用反射穿透编译器忽略范型

Java中的范型的作用阶段是在 编译时,也就是说范型是给编译器看的    . 我们经常看到  类 ArrayList<E>      后面的<E>  就是类型化参数,说明这个 ArrayList支持  范型化   . 比如   ArrayList<Integer>    就叫做Integer类型化的ArrayList.,当编译完之后 在运行阶段 就会丢掉 类型化参数   .    范型化后的 类型  与原始类型之间的操作:  Collection c=new Vecto

二次开发过程中,如何获取CRM4检索类型的返回值。使用JAVASCRIPT等技术

问题描述 二次开发过程中,如何获取CRM4检索类型的返回值.使用JAVASCRIPT等技术.也就是点击检索类型旁边的放大镜后,需要对弹出的子页面的返回的值进行处理.谢谢各位大侠啦. 解决方案

反射中调用方法传入参数类型一样 却报错

问题描述 反射中调用方法传入参数类型一样 却报错 object obj = Activator.CreateInstance(objectType);// 创建实例 反射创建一个实例 MethodInfo methodInfo = obj.GetType().GetMethod("Parse"); //调用里面的Parse 方法 这个方法需要参数 List methodInfo.Invoke(obj, new object[]{items}); //items 是List类型的参数 ,

处理集合的范型类型的命名空间

问题描述 usingSystem;usingSystem.Collections;//这是在.net2003中的命名方式usingSystem.Text;classClass1{privatestaticList<Dictionary<String,String>>GetData(outList<String>columns)staticvoidMain(string[]args){}}语句存在错误:List<>,Dictionary<>出错,在

Java利用反射来获取一个方法的 范型化参数 Vector&amp;lt;Integer&amp;gt;的类型

假设有如下类 class   A {      public  void   show(Vector<Integer> v)  {} }   在我们不知道Vector中数据的类型的时候 这时候我们只知道这个方法的名字  和参数的个数 ,我们来获取 范型化的实际类型 .  我们不可能通过 Vector对应的Class类来反射出  泛型集合中的类型  ,但是 我们却可以通过 这个方法所对应的Method类来实现 . 具体如下  : import java.lang.reflect.Method;

.Net Framework 2.0范型的反射使用

在.Net Framework 2.0中引入了范型(Generic)的概念,这可以说是一个重大的改进它的好处我在这里也不用多说,到网上可以找到非常多的说明. 我在这里要和大家说的是怎么通过反射使用范型的技术. 一:首先看看范型的FullName List<string> list = new List<string>(); System.Console.WriteLine(list.GetType().FullName);System.Console.WriteLine(); 这个

.NET 2.0 基础类库中的范型——范型集合

集合 范型集合毫无疑问,范型最典型的应用莫过于范型集合了.在 .NET 2.0 中提供了已有集合类和接口的范型版本,它们位于 System.Collections.Generic 命名空间中. .NET 2.0 中新的范型集合类并不是简单的在已有非范型集合类的设计上多加了个范型参数 T 而已.新的范型集合类的设计充分吸收了已有设计中的合理之处并摒弃了一些不甚合理之处,同时引入了新的针对范型的设计.所以,新的范型类和接口的设计应该更加合理和有效,不过 .NET 程序员则需要花些时间学习新的设计并了

Java范型知识

我相信很多人跟我一样还未学习过范型的概念就开始使用范型的实例,最典型的就是集合框架.为了 进一步深入了解范型,这一次通过几个简单的例子来说明范型的注意事项. 一.没有范型的世界 所有的java类都派生自java.lang.Object ,这意味着所有的java对象都可以转换成Object,听起来似乎 很美妙,但事实并非如此.举个例子,假设现在需要一伙人去排队,要求只有学生可以参与进来,但是如 果对于这个队伍没有条件限定的话,那就意味着我们不想要的一些群体也会进入大军之中,这不利于管理 .再如下面

《JavaScript应用程序设计》一一2.12 范型编程与集合多态

2.12 范型编程与集合多态 范型编程是指在多种数据类型上提供可复用的一套算法与数据结构,这种语言机制的产生缘由在于算法通常能适配多种数据类型.范型编程一般从几种特定的数据类型实现开始入手,随后逐步将之抽象成为能够兼容更多数据类型的通用版本. 范型编程并没有对不同类型的数据做算法差异性处理,相反,被传入的每种数据类型必须实现算法中所约定的功能,这些功能被称为"接口需求". 范型编程具有参数多态性,它是作用于范类型参数上的逻辑分支,相比之下,重载则需要对所有不同类型的参数分别创建一套处理