using NCC.Dependency;
using Microsoft.Extensions.FileProviders;
using System;
using System.Reflection;
namespace NCC.VirtualFileServer
{
///
/// 虚拟文件服务静态类
///
[SuppressSniffer]
public static class FS
{
///
/// 获取物理文件提供器
///
///
///
///
public static IFileProvider GetPhysicalFileProvider(string root, IServiceProvider serviceProvider = default)
{
return GetFileProvider(FileProviderTypes.Physical, root, serviceProvider);
}
///
/// 获取嵌入资源文件提供器
///
///
///
///
public static IFileProvider GetEmbeddedFileProvider(Assembly assembly, IServiceProvider serviceProvider = default)
{
return GetFileProvider(FileProviderTypes.Embedded, assembly, serviceProvider);
}
///
/// 文件提供器
///
///
///
///
///
public static IFileProvider GetFileProvider(FileProviderTypes fileProviderTypes, object args, IServiceProvider serviceProvider = default)
{
var fileProviderResolve = App.GetService>(serviceProvider ?? App.RootServices);
return fileProviderResolve(fileProviderTypes, args);
}
}
}