开源.NetCore通用工具库Xmtool使用连载
Posted 黎明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源.NetCore通用工具库Xmtool使用连载相关的知识,希望对你有一定的参考价值。
【Github源码】
《上一篇》 详细介绍了Xmtool工具库中的散列算法类库,今天我们继续为大家介绍其中的随机值类库。
基于系统提供的Random获取随机值方法已经足够简单和易用,本类库只对日常开发过程中最常用到的生成随机验证码方法进行了封装,后续发现其他有价值的常用随机值需求,会陆续添加到类库中。
1. 生成验证码
public string RandomCaptcha(int len, bool onlyNumber = false)
参数
len: 验证码字符个数
onlyNumber: 是否只包含数字,默认false
// 生成4位纯数字验证码
string numCaptcha = Xmtool.Random().RandomCaptcha(4, true);
// 生成6位字母和数字混合的验证码
string captcha = Xmtool.Random().RandomCaptcha(6);
【Github源码】
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Coravel
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!
Coravel 帮助开发人员在不影响代码质量的情况下快速启动和运行他们的 .NET Core 应用程序。
它通过为您提供简单、富有表现力和直接的语法,使高级应用程序功能易于访问和使用。
Github地址:https://github.com/jamesmh/coravel
安装
dotnet add package coravel
例子
Task Scheduling
配置
在 .NET Core 应用程序的Startup.cs文件中,在ConfigureServices()方法内,添加以下内容:
services.AddScheduler()
使用
然后在Configure()方法中,可以使用调度器:
var provider = app.ApplicationServices;
provider.UseScheduler(scheduler =>
scheduler.Schedule(
() => Console.WriteLine("Every minute during the week.")
)
.EveryMinute()
.Weekday();
);
Queuing
配置
在您的Startup文件中,在ConfigureServices():
services.AddQueue();
使用
将接口的一个实例Coravel.Queuing.Interfaces.IQueue注入到控制器
IQueue _queue;
public HomeController(IQueue queue)
this._queue = queue;
同步
public IActionResult QueueTask()
this._queue.QueueTask(() => Console.WriteLine("This was queued!"));
return Ok();
异步
this._queue.QueueAsyncTask(async() =>
await Task.Delay(1000);
Console.WriteLine("This was queued!");
);
Caching
配置
在Startup.ConfigureServices():
services.AddCache();
这将启用内存 (RAM) 缓存。
使用
要使用缓存,请Coravel.Cache.Interfaces.ICache通过依赖注入进行注入。
private ICache _cache;
public CacheController(ICache cache)
this._cache = cache;
Event Broadcasting(事件广播)
Coravel 的事件广播允许侦听器订阅应用程序中发生的事件。
配置
在ConfigureServices方法中:
services.AddEvents();
接下来,在Configure方法中:
var provider = app.ApplicationServices;
IEventRegistration registration = provider.ConfigureEvents();
注册事件及其监听器
registration
.Register<BlogPostCreated>()
.Subscribe<TweetNewPost>()
.Subscribe<NotifyEmailSubscribersOfNewPost>();
使用
创建一个实现接口的类Coravel.Events.Interfaces.IEvent。就是这样!
事件只是将提供给每个侦听器的数据对象。它应该公开与此特定事件关联的数据。
例如,一个BlogPostCreated事件应该接受BlogPost创建的,然后通过公共属性公开它。
public class BlogPostCreated : IEvent
public BlogPost Post get; set;
public BlogPostCreated(BlogPost post)
this.Post = post;
创建一个新类,该类实现您将要监听的事件Coravel.Events.Interfaces.IListener的接口。提示:每个侦听器只能与一个事件相关联。
该IListener接口需要您实现HandleAsync(TEvent broadcasted)。
创建一个名为TweetNewPost的侦听器:
public class TweetNewPost : IListener<BlogPostCreated>
private TweetingService _tweeter;
public TweetNewPost(TweetingService tweeter)
this._tweeter = tweeter;
public async Task HandleAsync(BlogPostCreated broadcasted)
var post = broadcasted.Post;
await this._tweeter.TweetNewPost(post);
Mailing
配置
nuget 安装 coravel mail 这将安装 Nuget 包Coravel.Mailer,并为您搭建一些基本文件:
~/Views/Mail/_ViewStart.cshtml- 配置邮件视图以使用 Coravel 的电子邮件模板
~/Views/Mail/_ViewImports.cshtml- 允许您使用 Coravel 的视图组件 -~/Views/Mail/Example.cshtml- 示例邮件视图
~/Mailables/Example.cs- 可邮寄样本
在Startup.ConfigureServices():
services.AddMailer(this.Configuration);
使用
Coravel 使用Mailables发送邮件。Mailables 继承Coravel.Mailer.Mail.Mailable并接受一个泛型类型,该类型表示您希望与发送邮件相关联的模型。
using Coravel.Mailer.Mail;
using App.Models;
namespace App.Mailables
public class NewUserViewMailable : Mailable<UserModel>
private UserModel _user;
public NewUserViewMailable(UserModel user) => this._user = user;
public override void Build()
this.To(this._user)
.From("from@test.com")
.View("~/Views/Mail/NewUser.cshtml", this._user);
Mailable 的所有配置都在该Build()方法中完成。然后,您可以调用各种方法,例如To和From来配置收件人、发件人等。
如果大家对.net开源项目感兴趣可以持续关注我。
以上是关于开源.NetCore通用工具库Xmtool使用连载的主要内容,如果未能解决你的问题,请参考以下文章
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Asp.net Core - 通用存储库模式 - 使用 TrimStart 搜索