# ZyxTools **Repository Path**: lemoonq/zyx-tools ## Basic Information - **Project Name**: ZyxTools - **Description**: 一些工具库之类的东西 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-10-03 - **Last Updated**: 2024-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1. MemoryMQ ## 用法 - 首先在Services上配置 AddMemoryMQ() - 然后在中间件中使用 UseMemoryMQ() - 在要接受处理消息的地方 继承IBus<> 接口 - 在要用到发布消息的地方 先将 IProducer 注入到构造函数中 使用 PublishAsync() 方法发布到消息队列中 消息队列根据 IBus<> 的 topic 进行消息分发(使用多线程同时处理) 发布和接受类型不一致时会提示错误 ``` C# builder.Services.AddMemoryMQ(); ``` ``` C# app.UseMemoryMQ(); ``` ``` C# // 支持构造函数注入 // 当要订阅多个topic时 使用Subscribe特性 public class TestBus : IBus { public string topic => "123/456"; private readonly ILogger logger; public TestBus(ILogger logger) { this.logger = logger; } [Subscribe("123")] public Task HandlerAsync(Test data) { logger.LogInformation("我是TestBus: " + data.Name); return Task.CompletedTask; } } public class Test { public string Name { get; set; } } ``` ``` C# // 构造函数注入 IProducer 对象 await producer.PublishAsync("123/456",new Test(){Name = name}); ``` # 2. Common 存放一些通用类封装 目前可用的有 JsonFile: 对json文件的读写 ZHttp: 对HttpClient进行了一些封装 Excel: 简单对excel读写进行封装