C# 模块和程序集

使用某个库的应用程序只会在必要时才加载该库:整个库在运行时被加载到内存中。如果这个库较大,应用程序就会耗费更多的内存,并且花费较长的时间执行加载。为了解决这种问题,可以将程序集拆分为多个模块,然后分别编辑每个模块,接下来,可以将这些模块编译为程序集。

新建一个ClassLibrary项目,将该ClassLibrary项目命名为StringUtil.代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StringUtil
{
   public class StringUtil
    {
       public bool ValidateEmail(string email)
       {
           string strRegEx = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
           System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(strRegEx);
           if (regex.IsMatch(email))
           {
               return true;
           }
           else
           {
               return false;
           }
       }
    }
}
 
 
 
 
启动VisualStudio2008命令提示符窗口(Start->Programs|Microsoft VisualStudio2008|VisualStudio Tools|VisualStudio2008 Command Prompt命令)来使用C#编辑器。
定位到包含StringUtil项目的文件夹,输入如下命令以创建新的模块:
csc /target:module /out:StringUntil.netmodule StringUtil.cs
仓编译操作完成时,就会创建StringUtil.netmodule文件,
如下图:
C# 模块和程序集_第1张图片

创建新ClassLibrary,命名为MathUtil,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MathUnit
{
    public class Utils
    {
        public int Fibonacci(int num)
        {
            if (num <= 1) return 2;
            return Fibonacci(num - 1) + Fibonacci(num - 2);
        }
    }
}
按照相同的方式操作

csc /target:module /out:MathUtil.netmodule Class1.cs

将刚刚创建的两个模块(StringUtil.netmodule和MathUtil.netmodule)复制到某个文件夹(如C:\Modules\)中,现在通过输入如下命令将这两个模块组合为一个程序集:

csc /target:library /addmodule:StringUtil.netmodule /addmodule:MathUtil.netmodule /out:Utils.dll

会创建如下图所示的程序集




你可能感兴趣的:(C# 模块和程序集)