# 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}";
}
}
```