using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Sog { // 所有逻辑服务器类不能包含静态函数,统一管理 // c# 的dll加载了无法卸载,用AppDomain模式用起来不方便,所以每reload一次内存中多一份所有类的Assembly // 用静态函数也许容易出错,待后期验证 public abstract class BaseReloadableService : IReloadableService { /// /// 用来区分reload后不同的service,名字一样,id不同 /// uint m_serviceSeqID; /// /// 接口实现 /// /// public uint GetServiceSeqID() { return m_serviceSeqID; } public abstract int GetServiceType(); public abstract void Dispose(); /// /// 生成唯一id,方便通过日志找bug /// public BaseReloadableService() { m_serviceSeqID = ServiceMgr.Instance.GenNextSeqID(); } } }