千家信息网

如何分析ABP设置管理

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,如何分析ABP设置管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。ABP的设置管理。开始首先定义了一个FileOpti
千家信息网最后更新 2024年11月28日如何分析ABP设置管理

如何分析ABP设置管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

ABP的设置管理。

  开始

  首先定义了一个FileOptions类,其中包含了几个配置,然后在需要的地方中注入IOptions就可以使用这些信息了。

  当然,模块启动时可以做一些配置修改,比如:

  无论是配置文件还是这种代码形式的配置,都是程序层面的修改;有些配置不太适合这样做,比如这里的AllowedMaxFileSize和AllowedUploadFormats,它们应该在应用界面上,可以让管理员自行修改。下面就来改造一下程序。

  定义设置

  使用设置之前需要先定义它,不同的模块可以拥有不同的设置。

  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(name);

  }

  }

  以上代码定了了2个配置:AllowedMaxFileSize和AllowedUploadFormats,设置了它们的默认值、名称和详细说明。因为本项目使用了EasyAbp的SettingUi模块,所以会有一些Group1,Group2之类的字段,具体介绍可以参考Abp.SettingUi

  使用设置

  想读取设置信息,只需注入ISettingProvider即可。因为父类ApplicationService中已经注入,所以这里直接使用SettingProvider就好。获取到配置,然后就可以做一些逻辑处理,比如判断上传文件的大小和格式是否合法:

  public class FileAppService : FileManagementAppService, IFileAppService

  {

  ......

  [Authorize]

  public virtual async Task CreateAsync(FileUploadInputDto input)  郑州人流医院http://www.xasg120.net/

  {

  var allowedMaxFileSize = await SettingProvider.GetAsync(FileManagementSettings.AllowedMaxFileSize);//kb

  var 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"]);

  }

  ......

  }

  }

  前端设置界面:

  下面可以随便修改下设置,进行测试:  

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0