//初始化 protected override void Setup() { Instance = this; // 日志的初始化 log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine( Path.Combine(this.ApplicationRootPath, "bin_Win64"), "log"); FileInfo configFileInfo = new FileInfo(Path.Combine(this.BinaryPath, "log4net.config")); if (configFileInfo.Exists) { LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance); //让photon知道 XmlConfigurator.ConfigureAndWatch(configFileInfo); //让log4net这个插件读取配置文件 } log.Info("Setup Completed!"); InitHandler(); syncPositionThread.Run(); }
private void InitHandler() { MyGameServer.LogInfo(" InitHandler Start"); Type[] types = Assembly.GetCallingAssembly().GetTypes(); Type baseRequestType = typeof(BaseRequestHandler); MyGameServer.LogInfo(" baseRequestType FullName = " + baseRequestType.FullName); foreach (var typeItem in types) { Type baseType = typeItem.BaseType; if (baseType != null) { if (baseType.Name == baseRequestType.Name) { try { Type ObjType = Type.GetType(typeItem.FullName, true); object obj = Activator.CreateInstance(ObjType); if (obj != null) { BaseRequestHandler info = obj as BaseRequestHandler; if (info != null) { MyGameServer.LogInfo("ObjType FullName = " + ObjType.FullName + "Add To DictRequestHandler"); DictRequestHandler.Add(info.OpCode, info); } } } catch (Exception e) { MyGameServer.LogInfo("typeItem FullName = " + typeItem.FullName + "Not Find"); } } } } MyGameServer.LogInfo(" InitHandler Complete"); }