有人可以解释在.Net中使用主互操作程序集的好处吗?

时间:2008-10-15 13:58:33

标签: .net interop components

这个概念对我来说是新的,一位同事提出了这个概念。可悲的是,我不知道他在说什么。有人可以开导我吗?

3 个答案:

答案 0 :(得分:12)

您可以找到有关它的大量信息here

简而言之,PIA是一个签名的互操作程序集,它提供COM库中发布者对COM库中类型的“官方”定义。

至于好处,发表的文章总结得相当不错:

  PIA很重要,因为他们   提供独特的类型标识。 PIA   区分官方类型   假冒的定义   其他互操作提供的定义   组件。有一种类型   identity确保类型兼容性   在共享的应用程序之间   PIA中定义的类型。因为   PIA由其出版商签署   标有的   它是PrimaryInteropAssembly属性   可以与其他人区分开来   interop程序集定义   相同的类型。

答案 1 :(得分:3)

主互操作程序集将COM接口包装为.NET兼容类型。它没有为您提供手动调用方法的精细控制,但它足够接近。

没有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 });

使用PIA:

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

答案 2 :(得分:1)

简单地通过一个例子说,如果你想开发一个类似于任何其他具有扩展功能的办公工具(MS word,visio ...)的应用程序,你可以使用PIA中的办公工具的功能。我的类图绘制应用程序,使用 用于类图创建的visio面板。

相关问题