public void Setup() { if (String.IsNullOrEmpty(ConfigPath)) { ConfigPath = Consts.DEFAULT_SMARTSQL_CONFIG_PATH; } if (String.IsNullOrEmpty(Alias)) { Alias = ConfigPath; } if (LoggerFactory == null) { LoggerFactory = NoneLoggerFactory.Instance; } if (ConfigLoader == null) { ConfigLoader = new LocalFileConfigLoader(ConfigPath, LoggerFactory); } var sqlMapConfig = ConfigLoader.Load(); SmartSqlContext = new SmartSqlContext(LoggerFactory.CreateLogger <SmartSqlContext>(), sqlMapConfig); if (DbSessionStore == null) { DbSessionStore = new DbConnectionSessionStore(LoggerFactory, SmartSqlContext.DbProvider.Factory); } if (DataSourceFilter == null) { DataSourceFilter = new DataSourceFilter(LoggerFactory.CreateLogger <DataSourceFilter>(), DbSessionStore, SmartSqlContext); } if (SqlBuilder == null) { SqlBuilder = new SqlBuilder(LoggerFactory.CreateLogger <SqlBuilder>()); } if (PreparedCommand == null) { PreparedCommand = new PreparedCommand(LoggerFactory.CreateLogger <PreparedCommand>(), SmartSqlContext); } if (CommandExecuter == null) { CommandExecuter = new CommandExecuter(LoggerFactory.CreateLogger <CommandExecuter>(), PreparedCommand); } if (DataReaderDeserializerFactory == null) { DataReaderDeserializerFactory = new EmitDataReaderDeserializerFactory(); } if (CacheManager == null) { if (SmartSqlContext.IsCacheEnabled) { CacheManager = new CacheManager(LoggerFactory.CreateLogger <CacheManager>(), SmartSqlContext, DbSessionStore); } else { CacheManager = new NoneCacheManager(); } } ConfigLoader.OnChanged += ConfigLoader_OnChanged; }
public ISmartSqlMapper GetSqlMapper(String smartSqlMapConfigPath = "SmartSqlMapConfig.xml", IConfigLoader configLoader = null) { if (!_mapperContainer.ContainsKey(smartSqlMapConfigPath)) { lock (this) { if (!_mapperContainer.ContainsKey(smartSqlMapConfigPath)) { if (configLoader == null) { configLoader = new LocalFileConfigLoader(); } ISmartSqlMapper _mapper = new SmartSqlMapper(smartSqlMapConfigPath, configLoader); _mapperContainer.Add(smartSqlMapConfigPath, _mapper); } } } return(_mapperContainer[smartSqlMapConfigPath]); }