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