private void AddComponent(Type type, DBConfigEntity sysConfig, DBConfigEntity logConfig, MongoClient sysDbClient, MongoClient logDbClient, IMongoDatabase sysDb, IMongoDatabase logDb) { if (!typeof(IRpository).IsAssignableFrom(type)) { return; } var isSingle = ObjectStorage.IsSingleType(type); if (!isSingle) { throw new ComponentException("规定Rpository类型组件只能定义成单例(SingleCase)组件。"); } var component = ObjectStorage.Fetch(type); var rpository = component as IRpository; if (rpository.DBType == DBType.SysDb) { rpository.SetDBContext(sysDb, sysConfig.DatabaseName, sysDbClient); Game.Scene.AddComponent(component); } else if (rpository.DBType == DBType.LoggerDb) { rpository.SetDBContext(logDb, logConfig.DatabaseName, logDbClient); Game.Scene.AddComponent(component); } }