如果我接下来的解释不够合理,我现在道歉;我以它而闻名,尽管我尝试不这样做。
我正在编写一个使用用户定义插件的服务。我试图通过使用共享程序集中定义的接口来隔离它们——将它们的程序集排除在服务的 appdomain 之外。
让我感到沮丧的是抽象基类的使用。某些接口的所有实现都具有共同的功能,因此抽象基类是有意义的。如果一个抽象基础在服务程序集中,那么任何子类化它的插件都会将它们的程序集拖到服务的应用程序域中。但是,服务使用的抽象基础(具有内部设置器和公共获取器的属性)中有内部成员,因此它需要与服务位于同一程序集中才能实现。
看起来我想要的似乎是不可能的,但我也相信这是因为我采取了错误的方法。我正在拼命地尝试在这个练习中更好地利用好的模式和实践,并在此过程中不断学习。