CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 598

598
Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý

.NET Framework hỗ trợ khả năng liên tác với COM. Để cho phép .NET-client tương tác với
một thành phần COM, .NET sử dụng một Runtime Callable Wrapper (RCW)—một lớp proxy
đặc biệt đóng vai trò trung gian giữa mã .NET và thành phần COM. RCW sẽ xử lý tất cả chi
tiết, bao gồm việc marshal các kiểu dữ liệu, sử dụng các giao diện COM truyền thống, và xử
lý các sự kiện COM.
Bạn có ba tùy chọn khi sử dụng một RCW:

Lấy RCW từ tác giả của thành phần COM. Trong trường hợp này, RCW được gọi là một
Primary Interop Assembly (PIA).

Tạo RCW bằng tiện ích dòng lệnh Tlbimp.exe hoặc bằng Visual Studio .NET.

Tự tạo RCW thông qua các kiểu trong không gian tên

System.Runtime.

InteropServices

(cách này cực kỳ dài dòng và phức tạp).

Nếu muốn sử dụng Visual Studio .NET để tạo RCW, bạn chỉ cần chọn Project | Add Reference
và sau đó chọn thành phần thích hợp trong thẻ COM. Interop Assembly sẽ được tạo ra và được
thêm vào các tham chiếu của dự án. Sau đó, bạn có thể sử dụng Object Browser để khảo sát
các không gian tên và các lớp có trong thành phần này.

[

Hình 15.2 Sử dụng Object Browser

để xem các không gian tên và các lớp có trong thành phần COM

Nếu không sử dụng Visual Studio .NET, bạn có thể tạo một Wrapper Assembly bằng công cụ
Tlbimp.exe, chỉ cần truyền cho nó tên file chứa thành phần COM. Ví dụ, dòng lệnh sau đây sẽ
tạo một RCW với tên file và không gian tên mặc định, giả sử file MyCOMComponent.dll đang
nằm trong thư mục hiện hành.

tlbimp MyCOMComponent.dll

Giả sử MyCOMComponent chứa một thư viện kiểu có tên là MyClasses, file RCW sẽ có tên là
MyClasses.dll và sẽ trưng các lớp của nó thông qua một không gian tên có tên là MyClasses.
Bạn có thể cấu hình các tùy chọn này bằng các đối số dòng lệnh (được mô tả chi tiết trong tài

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.