使用Assembly来开发c#程序
来源:互联网 发布:php个人怎么接私活 编辑:程序博客网 时间:2024/05/16 09:28
使用Assembly来开发c#程序
什么是Assembly(程序集)?
Assembly是一个包含来程序的名称,版本号,自我描述,文件关联关系和文件位置等信息的一个集合。在.net框架中通过Assembly类来支持,该类位于System.Reflection下,物理位置位于:mscorlib.dll。
Assembly能干什么?
我们可以通过Assembly的信息来获取程序的类,实例等编程需要用到的信息。
一个简单的演示实例:
1.建立一个Console工程名为:NamespaceRef
2.写入如下代码:
1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.Reflection; 5 6namespace NamespaceRef 7{ 8 class Program 9 {10 static void Main(string[] args)11 {12 Country cy;13 String assemblyName = @"NamespaceRef";14 string strongClassName = @"NamespaceRef.China";15 // 注意:这里类名必须为强类名16 // assemblyName可以通过工程的AssemblyInfo.cs中找到17 cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);18 Console.WriteLine(cy.name);19 Console.ReadKey();20 }21 }2223 class Country24 {25 public string name;26 }2728 class Chinese : Country29 {30 public Chinese()31 {32 name = "你好";33 }34 }3536 class America : Country37 {38 public America()39 {40 name = "Hello";41 }42 }43}
由于Assembly的存在给我们在实现设计模式上有了一个更好的选择。
我们在开发的时候有时候会遇到这样的一个问题,根据对应的名称来创建指定的对象。如:给出chinese就要创建一个chinese对象,以前我们只能这样来写代码:
1if (strongClassName == "China")2 cy = new China();3else if (strongClassName == "America")4 cy = new America();
那么如果我们有很长的一系列对象要创建,这样的代码维护起来是很困难的,而且也不容易阅读。现在我们可以通过在外部文件定义类的程序集名称和类的强名称来获得这样一个实例,即易于理解,又增强了扩展性还不用修改代码。
cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);
结论
Assembly类有很多的方法和属性,它和Type一样有很多功能用于名称与方法和属性之间的转化。深入理解这两个类,你就可以清晰通用语言层是如何工作。
将想法付诸于实践,借此来影响他人是一个人存在的真正价值
- 使用Assembly来开发c#程序
- 使用Assembly来开发c#程序
- 使用Assembly来开发c#程序
- 使用Assembly来开发C#程序
- C#程序集Assembly
- c#使用反射加载程序集Assembly。load()使用全过程
- C#程序集Assembly学习
- C#程序集Assembly学习随笔
- 【C#学习】Assembly (程序集)的概念
- C#中使用Assembly.LoadFile()加载程序集的抛异常的问题
- 怎样使用Eclipse 来开发JAVA程序
- C# Assembly.Load 反射使用详解
- C#中可以通过Assembly来动态加载DLL
- C# Assembly
- C# Assembly
- C#程序集Assembly学习随笔(第一版)_AX
- C#程序集Assembly学习随笔(第一版)_AX
- Assembly(程序集)_Professional C# 3rd Edition
- 清除所有用户的历史命令
- UTF-8
- 时间正则(yyyy-MM-dd)
- .NET 双语(多语言、中英文)网站建设方法
- proxool配置详解
- 使用Assembly来开发c#程序
- Android开发必备的21个免费资源和工具(3)
- PowerManager简介
- pdf转swf中文乱码问题解决
- Mongodb与spring集成(3)------MongoRepository实现增删改查和复杂查询
- Android开发必备的21个免费资源和工具(4)
- c# 32位机和64位机 读取Excel内容到DataSet
- 经营自我
- SYBASE 12.5 维护手册 5. 灾难恢复篇