愚公系列2022年03月 .NET架構班 020-ABP vNext 虛擬文件系統

      網友投稿 804 2022-05-29

      前言

      虛擬文件系統可以管理文件系統(磁盤)上實際不存在的文件。 它主要用于將(js,css,image,cshtml …)文件嵌入到程序集中,并在運行時將它們用作物理文件。

      一、集成虛擬文件系統

      1、先在EBusiness.Application項目中通過Nuget下載

      Volo.Abp.VirtualFileSystem

      2、然后在EBusinessApplicationModule文件上增加(默認不需要加載,因為其他模塊已經集成)

      [DependsOn(typeof(AbpVirtualFileSystemModule))] public class EBusinessApplicationModule: AbpModule {}

      3、然后在EBusiness.Application項目中EBusinessApplicationModule類中添加

      // 虛擬文件系統 public class EBusinessApplicationModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { .... Configure(options => { options.FileSets.AddEmbedded( // 那個項目中的文件 baseNamespace: "EBusiness.Application" // 默認命名空間 ); }); .... } }

      4、最后使用EBusiness.Application項目中WxPayAppService類中使用IVirtualFileProvider接口獲取指定文件

      【愚公系列】2022年03月 .NET架構班 020-ABP vNext 虛擬文件系統

      public class WxPayAppService : EBusinessAppService, IPayAppService { .... public IVirtualFileProvider _virtualFileProvider { set; get; } .... public string CreatePay(string productName, string orderSn, string totalPrice) { ..... var file = _virtualFileProvider.GetFileInfo("/Pays/certs/apiclient_cert.p12"); NativePay nativePay = new NativePay(); nativePay.description = productName; nativePay.out_trade_no = orderSn; nativePay.amount.total = int.Parse(float.Parse(totalPrice) * 100 + ""); // 2、支付對象轉換成json string nativePayJson = JsonConvert.SerializeObject(nativePay); // 3、創建支付 string result = _wxPayHttpClient. WeChatPostAsync(nativeUrl, nativePayJson, file.PhysicalPath, mchid, certSerialNo).Result; return result; } }

      5、AddEmbedded 配置參賽

      AddEmbedded 擴展方法需要一個類, 從給定類的程序集中查找所有嵌入文件, 并將它們注冊到虛擬文件系統. 通常將模塊類作為通用參數傳遞.

      AddEmbedded 有兩個可選參數;

      baseNamespace: 僅在你沒有配置上面說明的GenerateEmbeddedFilesManifest并且你的根名稱空間不為空時,才可能需要這樣做. 在這種情況下,請在此處設置你的根名稱空間.

      baseFolder:如果你不想公開項目中的所有嵌入式文件,只希望公開特定的文件夾(和子文件夾/文件),可以相對于項目根頁面設置基本文件夾.

      Configure(options => { options.FileSets.AddEmbedded( baseNamespace: "Acme.BookStore.MyFiles", baseFolder: "/MyFiles" ); });

      這個例子假設;

      你的項目根(default)命令空間是 Acme.BookStore.

      你的項目有一個名為 MyFiles 的目錄.

      你只想添加 MyFiles 目錄到虛擬文件系統.

      二、WEB項目使用虛擬文件系統

      1、先在EBusiness.Web項目中通過Nuget下載

      Volo.Abp.VirtualFileSystem

      2、然后在EBusinessWebnModule文件上增加(默認不需要加載,因為其他模塊已經集成)

      [DependsOn(typeof(AbpVirtualFileSystemModule))] public class EBusinessWebModule: AbpModule {}

      3、然后在EBusiness.Web項目中EBusinessWebModule類中添加

      // 虛擬文件系統 public class EBusinessWebModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { .... Configure(options => { options.FileSets.AddEmbedded( // 那個項目中的文件 baseNamespace: "EBusiness.Web" // 默認命名空間 ); }); .... } }

      三、虛擬文件替換功能

      1、EBusiness.Web項目中EBusinessWebModule類中添加

      // 虛擬文件系統 public class EBusinessWebModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { .... Configure(options => { options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}EBusiness.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}EBusiness.Domain")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}EBusiness.Application.Contracts")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}EBusiness.Application")); options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); ); }); .... } }

      .NET 虛擬化

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:(openEuler21.03-x86)docker安裝開源Spug輕量級自動化運維平臺
      下一篇:Python遞歸遍歷文件夾搜索文件 腳本MagicSearch.py
      相關文章
      亚洲精品在线免费看| 亚洲av永久无码精品国产精品| 亚洲四虎永久在线播放| 亚洲精品少妇30p| 亚洲人成人无码网www国产| 国产成人亚洲精品无码AV大片| 亚洲欧美国产欧美色欲| 男人天堂2018亚洲男人天堂| 狠狠色伊人亚洲综合网站色| 狠狠色伊人亚洲综合网站色| 亚洲日韩国产欧美一区二区三区| 亚洲色中文字幕在线播放| 一本色道久久综合亚洲精品蜜桃冫| 亚洲国产人成在线观看| 麻豆狠色伊人亚洲综合网站 | 亚洲国产精品线观看不卡| 亚洲精品中文字幕乱码| 亚洲成aⅴ人片在线影院八| 亚洲国产电影在线观看| 狠狠色香婷婷久久亚洲精品| 亚洲www77777| 亚洲AV日韩AV永久无码色欲| 在线91精品亚洲网站精品成人| 亚洲av无码国产精品色在线看不卡| 亚洲国产成人久久一区WWW| 亚洲美女高清一区二区三区| 亚洲中文字幕无码不卡电影| 久久亚洲国产午夜精品理论片| 亚洲AV无码码潮喷在线观看| 久久亚洲AV成人无码电影| 亚洲精品国产肉丝袜久久| 亚洲五月丁香综合视频| 亚洲精品综合在线影院| 亚洲av无码成人精品国产| 亚洲高清偷拍一区二区三区| 亚洲午夜未满十八勿入网站2| 亚洲第一福利视频| 亚洲av无码电影网| 久久亚洲AV成人无码国产电影| 亚洲午夜无码片在线观看影院猛 | 超清首页国产亚洲丝袜|