public MongoStorage(FileStorageContext context) { this.context = context; connectionString = context.GetConfig("mongoConnectionString") ?? connectionString; mongoClient = new MongoClient(connectionString); db = mongoClient.GetDatabase("MongoFileSystem"); }
/// <summary> /// 构造函数 /// </summary> /// <param name="context"></param> public LocalStorage(FileStorageContext context) { this.context = context; rootDir = context.GetConfig("localRootDirectory") ?? rootDir; if (!rootDir.EndsWith("\\")) { rootDir = rootDir + "\\"; } }
IFileStorage CreateStorage() { FileStorageContext context = GetContext(); string assemblyName = context.GetConfig("storageDriver.assembly"); string typeName = context.GetConfig("storageDriver.type"); Assembly assembly = Assembly.Load(assemblyName); IFileStorage storage = (IFileStorage)assembly .CreateInstance(typeName, true, BindingFlags.Default, null , new object[] { context }, null, null); return(storage); }
/// <summary> /// 读取配置文件获取文件存储上下文 /// </summary> /// <returns></returns> private FileStorageContext GetContext() { FileStorageContext context = new FileStorageContext(); ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = configPath; Configuration configuration = ConfigurationManager .OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); foreach (var key in configuration.AppSettings.Settings.AllKeys) { context.SetConfig(key, configuration.AppSettings.Settings[key].Value); } return(context); }