1、如果A中没有使用C中的类,而且B中的类没有从C中的类继承的,那么可以,否则不行。
2、你是说得什么配置文件?如果是自动调用Assembly,可以考虑设计一些接口,以后的功能都实现这些接口;自动升级后,在某个位置把Assembly中的实现类的名称暴露出来,然后在系统中利用动态创建对象的方法从Assembly中创建对象,转成统一的接口来使用。

解决方案 »

  1.   

    我们也碰到了类似的问题,特别是第二个问题,一起讨论
    我想用反射来实现,自动提取配置文件。
    [email protected]
      

  2.   

    设计接口我想可能是一个突破口。
    我的gui(windows窗体)是通过loadfrom动态载入的,部署配置问题不大;但是业务组件不好通过loadfrom实现。如果是通过设计接口倒有可能,tim兄能给出一些指点吗?谢谢!!!
      

  3.   

    如果你事先定义了一个统一的业务功能接口:IBizFunction比方你的Assembly(名为"myAssembly")中有一个类叫做“myClass”,那么:IBizFunction obj = (IBizFunction )Activator.CreateInstance( "myClass","myClass" ); //这里的Assembly和Type名称都可以维护到配置中去那么这个Obj就是新的业务对象通过接口,实际上你可以不用管如何实现,只要有统一的行为,就可以满足升级的要求。当然,这只是个小例子,你可以充分利用接口,定义不同的接口来规范不同的功能,这些信息可以维护到配置当中去。我还建议你可以使用某种注册机制,新的Assembly可以在升级的时候注册到你的系统当中,系统把需要的信息收集然后维护到某个配置中;使用的时候可以根据这些配置动态的创建对象来完成一些功能。