C#开发的服务端怎么实现热更新

C#开发的服务端如何实现热更新
本帖最后由 u012712462 于 2014-04-06 23:17:33 编辑
之前是用python做服务端,但里面的中文字符编码和类型转换实在让人恼火,所以打算转型到C#中,但不知如何实现像python里面的reload热更新,即有函数改动时,不需要重启服务端,就像php asp更新一样方便

------解决方案--------------------
引用:
Quote: 引用:

C#开发的服务端怎么实现热更新
你是说Web? Web不需要重启服务端呀。
如果是WinForm那你要学会用委托。。把业务处理独立出来,一样可以做到热更新。。之前我们能让游戏服务端做到热更新。

委托可以在不关闭服务端的情况下更新逻辑部分吗  可以介绍一下实现的大概流程吗?万分感激

要有以下条件
1.主程序exe ,Models.DLL,Common.DLL这三个如果要更新必需重启
2.把逻辑处理全放到一个工程(Process.dll)项目下
关系如下:

主程序.exe引用Models.Dll与Common.DLL
Common.DLL引用Models.DLL(COMMON.DLL定义方法的委托)
如 
class Common
{
  public static void Action<string,string> XXXX;
  public static void Action<string,string> XXXX2;....这些全是静太的
}
然后呢主程序只要调用上面定义的委托
在你所需的地方调用,还有把缓存数据也放到CommonDLL里这样数据也不会丢失
Common.XXXX(xxx,xxx);
Common.XXXX2(xxx,xxx);
这样

Process.DLL引用 用Models.Dll与Common.DLL
Procles.DLL定义一个
public static  class Process
{
   public  static void IniMethod()
    {
        这里绑定委托
        Common.XXXX=xxx 这就是你要绑定的哪个方法
         Common.XXXX2=xxx 这就是你要绑定的哪个方法
    }
}

然后程序启动或要更新时写个通用的调用
只要用
Assembly.Load(xxx)
找出 Process 这个静态类 然后执行一下Process.IniMethod() 就可以了 这样程序就不用停下来了