? Bạn cần xây dựng một tập các chức năng thành một thư viện để nó có thể được tham chiếu và tái sử dụng bởi nhiều ứng dụng.
» Để tạo thư viện, sử dụng đối số /target:library khi biên dịch assembly của bạn bằng trình biên dịch C# (csc.exe). Để tham chiếu thư viện, sử dụng đối số /reference và chỉ định tên của thư viện khi biên dịch ứng dụng.
Mục 1.1 minh họa cách xây dựng ứng dụng MyFirstApp.exe từ hai file mã nguồn ConsoleUtils.cs và HelloWorld.cs. File ConsoleUtils.cs chứa lớp ConsoleUtils, cung cấp các phương thức đơn giản hóa sự tương tác với Console. Các chức năng này của lớp ConsoleUtils cũng có thể hữu ích cho các ứng dụng khác. Để sử dụng lại lớp này, thay vì gộp cả mã nguồn của nó vào mỗi ứng dụng, bạn có thể xây dựng nó thành một thư viện, khiến các chức năng này có thể truy xuất được bởi nhiều ứng dụng.
Để xây dựng file ConsoleUtils.cs thành một thư viện, sử dụng lệnh:
Code:
csc /target:library ConsoleUtils.cs
Lệnh này sinh ra một file thư viện có tên là ConsoleUtils.dll.
Để tạo một thư viện từ nhiều file mã nguồn, liệt kê tên các file này ở cuối dòng lệnh. Bạn có thể sử dụng đối số /out để chỉ định tên thư viện, nếu không, tên thư viện được đặt theo tên của file mã nguồn đầu tiên. Ví dụ, để tạo thư viện MyFirstLibrary.dll từ hai file mã nguồn ConsoleUtils.cs và WindowsUtils.cs, sử dụng lệnh:
Code:
csc /out:MyFirstLibrary.dll /target:library
ConsoleUtils.cs WindowsUtils.cs
Trước khi phân phối thư viện cho người khác sử dụng, bạn nên tạo tên mạnh (strong-name) để không ai có thể chỉnh sửa assembly của bạn. Việc đặt tên mạnh cho thư viện còn cho phép người khác cài đặt nó vào Global Assembly Cache, giúp việc tái sử dụng dễ dàng hơn (xem mục 1.9 về cách đặt tên mạnh cho thư viện của bạn và mục 1.14 về cách cài đặt một thư viện có tên mạnh vào Global Assembly Cache). Ngoài ra, bạn có thể đánh dấu thư viện của bạn với chữ ký Authenticode để người dùng biết bạn là tác giả của thư viện (xem mục 1.12 về cách đánh dấu thư viện với Authenticode).
Để biên dịch một assembly có sử dụng các kiểu được khai báo trong các thư viện khác, bạn phải báo cho trình biên dịch biết cần tham chiếu đến thư viện nào bằng đối số /reference. Ví dụ, để biên dịch file HelloWorld.cs (trong mục 1.1) trong trường hợp lớp ConsoleUtils nằm trong thư viện ConsoleUtils.dll, sử dụng lệnh:
Code:
csc /reference:ConsoleUtils.dll HelloWorld.cs
Bạn cần chú ý ba điểm sau:
Nếu tham chiếu nhiều hơn một thư viện, bạn cần phân cách tên các thư viện bằng dấu phẩy hoặc chấm phẩy, nhưng không sử dụng khoảng trắng. Ví dụ:
/reference:ConsoleUtils.dll,WindowsUtils.dll
Nếu thư viện không nằm cùng thư mục với file mã nguồn, bạn cần sử dụng đối số /lib để chỉ định thư mục chứa thư viện. Ví dụ:
Code:
/lib:c:\CommonLibraries,c:\Dev\ThirdPartyLibs
Nếu thư viện cần tham chiếu là một assembly gồm nhiều file, bạn cần tham chiếu file có chứa manifest (xem thông tin về assembly gồm nhiều file trong mục 1.3).
Trích từ "Các giải pháp lập trình C#"