首页 > 代码库 > C#程序集系列05,让程序集包含多个module

C#程序集系列05,让程序集包含多个module

本篇体验在一个程序集中包含多个module。

 

□ 创建3个module

→删除F盘as文件夹中的一些文件,只剩下如下3个文件
27
→用记事本打开MyFirstModule.cs文件,修改如下,并保存

using System;
public class MyFirstModule
{
    public static void Hello()
    {
        Console.WriteLine("来自module 1的问候~");
    }
}


→用记事本打开MySecondModule.cs文件,修改如下,并保存

using System;
public class MySecondModule
{
    public static void Hello()
    {
        Console.WriteLine("来自module 2的问候~");
    }
}


→把MyFirstModule.cs类编译成module
28
→把MySecondModule.cs类编译成module
29
→在F盘as文件夹中创建MyThirdModule.cs文件,用记事本打开编写如下代码,并保存

using System;
public class MyThirdModule
{
    public static void Hello()
    {
        Console.WriteLine("来自module 3的问候~");
    }
}


→把MyThirdModule.cs类编译成module
30

 

□ 创建2个程序集并引用运行

现在需要创建2个程序集,一个程序集中包含MyFirstModule和MySecondModule。另一个程序集包含MySecondModule和MyThirdModule。

→创建程序集AssemblyA.dll包含MyFirstModule和MySecondModule。
31
→创建程序集AssemblyB.dll包含MySecondModule和MyThirdModule。
32
→编译MainClass.cs文件,引用AssemblyA.dll程序集
33
以上的dos命令等同于:csc /r:AssemblyA.dll /out:MainClass.exe MainClass.cs
→运行MainClass.exe
34
→修改MainClass.cs文件

using System;
using System;
class MainClass
{
    static void Main()
    {
        MySecondModule.Hello();
        MyThirdModule.Hello();
    }
}

→编译MainClass.cs,应用AssemblyB.dll程序集
35
→运行MainClassAnother.exe
36

 

总结:一个程序集是可以包含多个module的。如果将不常用的代码放在单独的module中,就可以减少程序集的载入时间。如果通过网络下载程序集,还可以节约带宽。

 

“C#程序集系列”包括:

  C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

  C#程序集系列02,使用记事本查看可执行程序集的IL代码

  C#程序集系列03,引用多个module

  C#程序集系列04,在程序集包含多个module的场景下理解关键字internal

  C#程序集系列05,让程序集包含多个module

 

参考资料:

http://www.computersciencevideos.org/  created by Jamie King

C#程序集系列05,让程序集包含多个module