74
Chương 2: Thao tác dữ liệu
3. Tạo một đối tượng
System.Reflection.AssemblyName
để xác định tên của assembly mà
phương thức
Regex.CompileToAssembly
sẽ tạo ra.
4. Gọi phương thức
Regex.CompileToAssembly
, truyền các đối số là mảng
RegexCompilationInfo
và đối tượng
AssemblyName
.
Quá trình trên tạo ra một assembly chứa các khai báo lớp cho từng biểu thức chính quy được
biên dịch, mỗi lớp dẫn xuất từ
Regex
. Để sử dụng một biểu thức chính quy đã được biên dịch
trong assembly, bạn cần tạo đối tượng biểu thức chính quy này và gọi các phương thức của nó
giống như khi tạo nó với phương thức khởi dựng
Regex
bình thường. Bạn nhớ thêm tham
chiếu tới assembly khi sử dụng các lớp biểu thức chính quy nằm trong nó.
Đoạn mã sau minh họa cách tạo một assembly có tên là MyRegex.dll, chứa hai biểu thức chính
quy có tên là
PinRegex
và
CreditCardRegex
:
using System.Text.RegularExpressions;
using System.Reflection;
public class CompiledRegexExample {
public static void Main() {
// Tạo mảng chứa các đối tượng RegexCompilationInfo.
RegexCompilationInfo[] regexInfo = new RegexCompilationInfo[2];
// Tạo đối tượng RegexCompilationInfo cho PinRegex.
regexInfo[0] = new RegexCompilationInfo(@"^\d{4}$",
RegexOptions.Compiled, "PinRegex", "", true);
// Tạo đối tượng RegexCompilationInfo cho CreditCardRegex.
regexInfo[1] = new RegexCompilationInfo(
@"^\d{4}-?\d{4}-?\d{4}-?\d{4}$",
RegexOptions.Compiled, "CreditCardRegex", "", true);
// Tạo đối tượng AssemblyName để định nghĩa assembly.
AssemblyName assembly = new AssemblyName();
assembly.Name = "MyRegEx";
// Tạo các biểu thức chính quy được biên dịch.
Regex.CompileToAssembly(regexInfo, assembly);