微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何分析ABP设置管理

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

ABP的设置管理。

  开始

如何分析ABP设置管理

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

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

如何分析ABP设置管理

  无论是配置文件还是这种代码形式的配置,都是程序层面的修改;有些配置不太适合这样做,比如这里的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"]);

  }

  ......

  }

  }

  前端设置界面:

如何分析ABP设置管理

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

如何分析ABP设置管理

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐