我目前正在为我正在编写的程序开发一个插件系统,并且遇到了主机和插件应该如何在一个共同的基础上通信的问题。我使用System.AddIn
命名空间(以前称为 MAF)来发现、隔离和激活加载项。
现在,由于我希望(需要?)加载项存在于与主机不同的 AppDomain 中,因此存在无法在 AppDomain 之间共享类型,因此无法在主机和加载项之间共享类型的问题。我知道 AppDomain 之间有一些对类型编组的内置支持,但对此一无所知,也不知道它是否合适。
所以问题是,如果我想在两个单独的应用程序域中的加载项和主机之间共享相同的对象(实例),我该怎么办?也许有一个更微妙的方法来解决这个问题?