private IRequestLoggerRepository GetConnection() { if (HttpRequestLoggerConfig.CreateRequestLoggerRepositoryFunc != null) { return(HttpRequestLoggerConfig.CreateRequestLoggerRepositoryFunc()); } if (string.IsNullOrEmpty(httpRequestLoggerConfig.RepositoryFullName)) { return(new DefaultRequestLoggerRepository()); } object obj = null; if (string.IsNullOrEmpty(httpRequestLoggerConfig.RepositoryAssemblyName)) { obj = GetType().Assembly.CreateInstance(httpRequestLoggerConfig.RepositoryFullName); } else { var assmebly = Assembly.Load(httpRequestLoggerConfig.RepositoryAssemblyName); if (assmebly == null) { throw new Exception($"加载程序集【{httpRequestLoggerConfig.RepositoryAssemblyName}】失败"); } obj = assmebly.CreateInstance(httpRequestLoggerConfig.RepositoryFullName); } if (obj is IRequestLoggerRepository) { return(obj as IRequestLoggerRepository); } else { throw new Exception($"【{obj.GetType().FullName}】必须实现【{typeof(IRequestLoggerRepository)}】接口!"); } }