static IFileProvider fileProviderResolve(FileProviderTypes fileProviderTypes, object args) { // 根据类型创建对应 提供器 IFileProvider fileProvider = fileProviderTypes switch { FileProviderTypes.Embedded => new EmbeddedFileProvider(args as Assembly), FileProviderTypes.Physical => new PhysicalFileProvider(args as string), _ => throw new NotSupportedException() }; return(fileProvider); } // 转换成委托 return((Func <FileProviderTypes, object, IFileProvider>)fileProviderResolve); });
/// <summary> /// 文件提供器 /// </summary> /// <param name="fileProviderTypes"></param> /// <param name="args"></param> /// <param name="serviceProvider"></param> /// <returns></returns> public static IFileProvider GetFileProvider(FileProviderTypes fileProviderTypes, object args, IServiceProvider serviceProvider = default) { var fileProviderResolve = App.GetService <Func <FileProviderTypes, object, IFileProvider> >(serviceProvider); return(fileProviderResolve(fileProviderTypes, args)); }