外接程序为主机应用程序提供了扩展功能或服务。.net framework提供了一个编程模型,开发人员可以使用该模型来开发加载项并在其主机应用程序中激活它们。该模型通过在主机和外接程序之间构建通信管道来实现此目的。该模型是使用:
System.AddIn, System.AddIn.Hosting, System.AddIn.Pipeline,System.AddIn.Contract命名空间中的类型实现的。
下面分插件模型,区分Addin和Host,相关主题和参考来讲述。
插件模型
外接程序模型由一系列段组成,这些段构成外接程序管道,也称为通信管道,负责外接程序与主机之间的所有通信。管道是在Add-in与其主机之间交换数据的Segment的对称通信模型。在宿主和外接程序之间开发这些段提供了支持外接程序的版本控制和隔离所需的抽象层。
下图显示了管道,
插件管道
这些段的程序集不需要位于同一应用程序域中。您可以将外接程序加载到其自己的新应用程序域、现有应用程序域中,甚至加载到宿主的应用程序域中。您可以将多个加载项加载到同一个应用程序域中,这样,加载项就可以共享资源和安全上下文。
外接程序模型支持并推荐宿主和外接程序之间的可选边界&#x