有人能解释一下在.Net中使用主互操作程序集的好处吗



这个概念对我来说是个新概念,是一位同事提出的。遗憾的是,我不知道他在说什么。有人能启发我吗?

您可以在这里找到大量关于它的信息。

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

至于好处,张贴的文章总结得很好:

PIA之所以重要,是因为它们提供唯一的类型标识。PIA区分官员类型伪造的定义其他interop提供的定义组件。具有单一类型标识确保类型兼容性在共享PIA中定义的类型。因为PIA由其出版商签署标记为PrimaryInteropAssembly属性,它可以与其他定义相同类型。

主互操作程序集将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);

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

最新更新