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

599

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

liệu MSDN). Ví dụ, bạn có thể sử dụng

/out:[Filename]

để chỉ định tên file assemby, sử dụng

/namespace:[Namespace]

để chỉ định không gian tên. Bạn cũng có thể sử dụng

/keyfile[keyfilename]

để tạo tên mạnh cho assembly, và đặt nó vào Global Assembly Cache

(GAC). Sử dụng

/primary

để tạo một PIA.

Nếu có thể, bạn nên sử dụng PIA thay vì tạo RCW. PIA hoạt động đáng tin cậy hơn vì được
tạo ra bởi nhà phát hành thành phần, và cũng có thể chứa một số tính năng nâng cao. Nếu một
PIA được đăng ký với hệ thống cho một thành phần COM thì Visual Studio .NET sẽ tự động
sử dụng PIA đó khi bạn thêm một tham chiếu đến thành phần COM. Ví dụ, adodb.dll (có
trong .NET Framework) cho phép bạn sử dụng các đối tượng ADO truyền thống. Nếu bạn
thêm một tham chiếu đến thành phần Microsoft ActiveX Data Objects, Interop Assembly này
sẽ tự động được sử dụng, mà không sinh ra một RCW mới. Tương tự, Microsoft Office XP
cung cấp một PIA để nâng cao sự hỗ trợ .NET cho Office Automation (bạn có thể tải PIA này
tại địa chỉ

[

http://msdn.microsoft.com/downloads/list/office.asp]

).

Ví dụ sau minh họa cách sử dụng COM Interop để truy xuất các đối tượng ADO truyền thống
trong ứng dụng .NET Framework.

using System;

public class ADOClassic {

private static void Main() {

ADODB.Connection con = new ADODB.Connection();

string connectionString = "Provider=SQLOLEDB.1;" +

"Data Source=localhost;" +

"Initial Catalog=Northwind;Integrated Security=SSPI";

con.Open(connectionString, null, null, 0);

object recordsAffected;

ADODB.Recordset rs = con.Execute("SELECT * From Customers",

out recordsAffected, 0);

while (rs.EOF != true) {

Console.WriteLine(rs.Fields["CustomerID"].Value);

rs.MoveNext();

}

Console.ReadLine();

}

}

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.