日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

初识ABP vNext(10):ABP设置管理

發(fā)布時(shí)間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识ABP vNext(10):ABP设置管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)字"小黑在哪里"關(guān)注我吧

  • 定義設(shè)置

  • 使用設(shè)置

前言

上一篇介紹了ABP模塊化開(kāi)發(fā)的基本步驟,完成了一個(gè)簡(jiǎn)單的文件上傳功能。通常的模塊都有一些自己的配置信息,比如上篇講到的FileOptions類(lèi),其中配置了文件的上傳目錄,允許的文件大小和允許的文件類(lèi)型。配置信息可以通過(guò)Configuration[1](配置)和Options[2](選項(xiàng))來(lái)完成,ABP還提供了另一種更靈活的方式:Settings[3](設(shè)置),本篇就來(lái)介紹一下ABP的設(shè)置管理。

開(kāi)始

回顧一下上篇的FileOptions:

首先定義了一個(gè)FileOptions類(lèi),其中包含了幾個(gè)配置,然后在需要的地方中注入IOptions<FileOptions>就可以使用這些信息了。

當(dāng)然,模塊啟動(dòng)時(shí)可以做一些配置修改,比如:

無(wú)論是配置文件還是這種代碼形式的配置,都是程序?qū)用娴男薷?#xff1b;有些配置不太適合這樣做,比如這里的AllowedMaxFileSize和AllowedUploadFormats,它們應(yīng)該在應(yīng)用界面上,可以讓管理員自行修改。下面就來(lái)改造一下程序。

定義設(shè)置

使用設(shè)置之前需要先定義它,不同的模塊可以擁有不同的設(shè)置。

modules\file-management\src\Xhznl.FileManagement.Domain\Settings\FileManagementSettingDefinitionProvider.cs:

public?class?FileManagementSettingDefinitionProvider?:?SettingDefinitionProvider {public?override?void?Define(ISettingDefinitionContext?context){/*?Define?module?settings?here.*?Use?names?from?FileManagementSettings?class.*/context.Add(new?SettingDefinition(FileManagementSettings.AllowedMaxFileSize,"1024",L("DisplayName:FileManagement.AllowedMaxFileSize"),L("Description:FileManagement.AllowedMaxFileSize")).WithProperty("Group1",?"File").WithProperty("Group2",?"Upload").WithProperty("Type",?"number"),new?SettingDefinition(FileManagementSettings.AllowedUploadFormats,".jpg,.jpeg,.png,.gif,.txt",L("DisplayName:FileManagement.AllowedUploadFormats"),L("Description:FileManagement.AllowedUploadFormats")).WithProperty("Group1",?"File").WithProperty("Group2",?"Upload").WithProperty("Type",?"text"));}private?static?LocalizableString?L(string?name){return?LocalizableString.Create<FileManagementResource>(name);} }

以上代碼定了了2個(gè)配置:AllowedMaxFileSize和AllowedUploadFormats,設(shè)置了它們的默認(rèn)值、名稱(chēng)和詳細(xì)說(shuō)明。因?yàn)楸卷?xiàng)目使用了EasyAbp的SettingUi模塊,所以會(huì)有一些Group1,Group2之類(lèi)的字段,具體介紹可以參考Abp.SettingUi[4]

使用設(shè)置

想讀取設(shè)置信息,只需注入ISettingProvider即可。因?yàn)楦割?lèi)ApplicationService中已經(jīng)注入,所以這里直接使用SettingProvider就好。獲取到配置,然后就可以做一些邏輯處理,比如判斷上傳文件的大小和格式是否合法:

public?class?FileAppService?:?FileManagementAppService,?IFileAppService {......[Authorize]public?virtual?async?Task<string>?CreateAsync(FileUploadInputDto?input){var?allowedMaxFileSize?=?await?SettingProvider.GetAsync<int>(FileManagementSettings.AllowedMaxFileSize);//kbvar?allowedUploadFormats?=?(await?SettingProvider.GetOrNullAsync(FileManagementSettings.AllowedUploadFormats))?.Split(",",?StringSplitOptions.RemoveEmptyEntries);if?(input.Bytes.Length?>?allowedMaxFileSize?*?1024){throw?new?UserFriendlyException(L["FileManagement.ExceedsTheMaximumSize",?allowedMaxFileSize]);}if?(allowedUploadFormats?==?null?||?!allowedUploadFormats.Contains(Path.GetExtension(input.Name))){throw?new?UserFriendlyException(L["FileManagement.NotValidFormat"]);}......} }

前端設(shè)置界面:

下面可以隨便修改下設(shè)置,進(jìn)行測(cè)試:

最后

本篇內(nèi)容較少,希望對(duì)你有幫助。代碼已上傳至 https://github.com/xiajingren/HelloAbp ,歡迎star。

參考資料

[1]

Configuration: https://docs.abp.io/zh-Hans/abp/latest/Configuration

[2]

Options: https://docs.abp.io/zh-Hans/abp/latest/Options

[3]

Settings: https://docs.abp.io/zh-Hans/abp/latest/Settings

[4]

Abp.SettingUi: https://github.com/EasyAbp/Abp.SettingUi

如果本文對(duì)您有用,

不妨點(diǎn)個(gè)“”或者轉(zhuǎn)發(fā)朋友圈支持一下

總結(jié)

以上是生活随笔為你收集整理的初识ABP vNext(10):ABP设置管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。