没有合适的资源?快使用搜索试试~ 我知道了~
首页C# 程序集 类型加载 反射
C# 程序集 类型加载 反射
需积分: 34 171 浏览量
更新于2023-03-16
评论 1
收藏 72KB DOC 举报
C# 程序集 类型加载 反射 C# 程序集 类型加载 反射 QQ:292258449
资源详情
资源评论
资源推荐

程序集 类型加载
第一部分:程序集(System.Reflection.Assembly)
1.获取 Assembly 对象
方法 1:调用 Assembly 的以下 4 个静态方法 Get...()之一:
GetAssembly(Type t)
GetCallingAssembly() ——返回调用当前方法的方法所在的程序集
GetExecutingAssembly() ——返回当前执行代码所在的程序集
GetEntryAssembly() ——返回当前 AppDomain 中包含 Main 方法的程序集
方法 2:调用 Assembly 的以下 3 个静态方法 Load(...)之一:括号中的...表示有若干种重
载22
Load(...)
LoadWithPartialName(...)
LoadFrom(...)
方法 3:通过 Type 对象的 Assebmly 属性或者 GetAssembly()方法,来获取表示此类型的程
序集 Assembly 对象——等价于前面的 Assembly.GetAssembly(Type t)静态方法
方法 4:AppDomain.GetAssemblies() ——返回在 AppDomain 中加载的程序集。
2.获取到 Assembly 对象后,可以使用其提供的属性和方法,得到关于程序集的所有信息。
见书上 P19-20,这里不再抄录。
第二部分:类型(Type):包括 类/接口/数组/值类型/枚举/指针
1.获取 Type 对象
方法 1:GetType()方法,有两个:
Object 类中的方法,所以所有类都会继承这个方法,获取自身的 Type 对象:
Type myType = myObj.GetType(); ——实例方法
同时,Type 类存在一个静态方法 GetType,获取没有实例化的类的 Type 对象:
Type myType = Type.GetType("System.Double"); ——静态方法,这里 System.Double
以字符串形式传递,区分大小写
注意:VB.NET 提供 GetType 运算符,获取对象的 Type 类型——C#下相应为 typeof()方
法:
Type myType = typeof(System.Double);
Dim myType as Type = GetType(System.Double); ——这里,System.Double 不需要加
引号,作为类来传递。
方法 2:GetInstances()方法,获取对象实现或者继承的所有接口类型,返回一个 Type 数
组:
Type[] myInterfaces = myObj.GetInstances();
方法 3:Reflection.Module.GetType()方法:
Type myType = myModule.GetType("ClassName");
一个 Module 中可能有多个 Class,获取模块中所有类型:Module.GetTypes();
查找 Module 中某一 Class 类型:Module.FindTypes();
2.获取到 Type 对象后,就可以访问类成员了,见第三部分。
第三部分:类成员















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0