这个概念对我来说是新的,一位同事提出了这个建议。可悲的是,我不知道他在说什么。有人可以启发我吗?
Kilhoffer
问问题
5030 次
3 回答
16
你可以在这里找到很多关于它的信息。
简而言之,PIA 是一个签名的互操作程序集,它提供来自 COM 库发布者的 COM 库中类型的“官方”定义。
至于好处,贴出的文章总结得很好:
PIA 很重要,因为它们提供了唯一的类型标识。PIA 将官方类型定义与其他互操作程序集提供的伪造定义区分开来。具有单一类型标识可确保共享 PIA 中定义的类型的应用程序之间的类型兼容性。由于 PIA 由其发布者签名并标有 PrimaryInteropAssembly 属性,因此可以将其与定义相同类型的其他互操作程序集区分开来。
于 2008-10-15T14:13:30.800 回答
4
主互操作程序集会将 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);
于 2008-10-15T14:27:56.607 回答
1
通过一个例子简单地说,如果你想开发一个应用程序类似于任何其他具有扩展功能的办公工具(MS word,visio ...),你可以使用 PIA 在你的项目中使用办公工具的功能。在我的类图中绘图应用程序,使用 visio 面板创建类图。
于 2014-08-11T14:19:41.090 回答