2008-10-15 24 views

Trả lời

12

Bạn có thể tìm thấy nhiều thông tin về nó here.

Tóm lại, PIA là một hội đồng interop có chữ ký cung cấp định nghĩa "chính thức" của các loại trong thư viện COM từ nhà xuất bản của thư viện COM.

Đối với những lợi ích, bài viết gửi tiền nó lên khá tốt:

PIAs quan trọng vì chúng cung cấp danh tính loại độc đáo. PIA phân biệt loại chính thức các định nghĩa từ giả định nghĩa được cung cấp bởi các hội đồng khác nhau . Có một loại duy nhất nhận dạng đảm bảo khả năng tương thích loại giữa các ứng dụng chia sẻ các loại được xác định trong PIA. Bởi vì PIA được nhà xuất bản của nó ký và được gắn nhãn với thuộc tính PrimaryInteropAssembly, nó có thể được phân biệt với các hội đồng khác interop xác định cùng loại.

3

Lắp ráp interop chính sẽ bao bọc giao diện COM thành các loại tương thích .NET. Nó không cung cấp cho bạn sự kiểm soát chi tiết bằng tay gọi các phương thức, nhưng nó đủ gần.

Nếu không có một PIA:

object _comObject; 
Type _comObjectType; 
_comObjectType = Type.GetTypeFromProgID("MyCompany.MyApplication.MyObject", true); 
_comObject = Activator.CreateInstance(_comObjectType); 

string name = (string)_comObjectType.InvokeMember("GetCustomerName", BindingFlags.InvokeMethod, null, _comObject, , new object [] { _customerId }); 

Với một PIA:

MyCompany.MyApplication.MyObject obj = new MyObject(); 
string name = obj.GetCustomerName(_customerId); 
+5

* Mọi hội đồng Interop sẽ làm điều đó, không chỉ là PIA – Joe

1

Đơn giản chỉ cần nói qua một ví dụ, nếu bạn muốn phát triển một ứng dụng giống như bất kỳ công cụ văn phòng khác (MS word, Visio ...) với chức năng mở rộng, bạn có thể sử dụng chức năng của các công cụ văn phòng trong dự án của bạn bằng cách sử dụng PIA.In ứng dụng vẽ sơ đồ lớp của tôi, sử dụng bảng điều khiển visio để tạo sơ đồ lớp.

Các vấn đề liên quan