# Helpers2 **Repository Path**: mushr/Helpers2 ## Basic Information - **Project Name**: Helpers2 - **Description**: 通用帮助类.net core版,使用net standard2.0,部分帮助类已经升级成net standard2.1 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 7 - **Created**: 2018-02-11 - **Last Updated**: 2024-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Helpers.RabbitMqHelper-rabbitmq封装类(已应用到生产环境) 自动创建交换机,队列,并将交换机和队列绑定,可以更加专注于业务代码的编写,处理了生产者并发BasicPublish报505的问题 ```csharp MqConfig config = new MqConfig() { HostName = "xxx", Port = xxx, UserName = "xxx", Password = "xxx", ExchangeName = "xxx", vHost = "xxx", PrefetchCount = 1, AutoAck = false, IsDebug = false, }; MqGlobleConfig.InitDefaultConnection(config); MqChannelManager channelManager = new MqChannelManager(); //创建消费者 var receiveChannel = channelManager.CreateReceiveChannel("xxx", async x => { Log.Information($"receive => {x.Content}"); x.BasicAck();//手动回答 }); //创建生产者 var producerChannel = channelManager.CreatePublishChannel("xxx"); //单个 producerChannel.Publish("xxx"); //批量 producerChannel.BatchPublish(Enumerable.Range(1, 10000).Select(x => "xxx")); Thread.Sleep(-1); producerChannel.Stop(); ``` ### Helpers.DiHelper 主要用于控制台,方便di调用 ### Helpers.MongoHelper ```csharp //在配置文件添加节点mongo public class MongoConfig { public const string SectionName = "mongo"; /// /// 数据库连接串 /// [Required] public string Connection { get; set; } /// /// 数据库名称 /// [Required] public string DatabaseName { get; set; } /// /// 仓储所在的程序集名称,非必填项,默认启动时会自动发现仓储类并注册 /// public List RepositoryAssemblyNames { get; set; } } //注册服务 services.AddMongoHelperz(Configuration); //定义实体 public class SysParams : MongoEntity { public string code { get; set; } public string value { get; set; } } //定义单例仓储,用于集合名称固定的 public class SysParamsRepository : MongoRepository { } //定义多例仓储,用于集合名称不固定(分表) public class SysParamsRepository : TransientMongoRepository { public AliUserDataRepository(IMongoDatabase mongoDatabase) : base(mongoDatabase, "_xxxx") { } public override void SetCollectionName(Func configure) { //编辑集合名称 GetCollectionName = () => $"{configure()}{_collectionName}"; } } ```