35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using System.Globalization;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using IRaCIS.Core.Domain.BaseModel;
|
|
using MassTransit;
|
|
|
|
public class CultureInfoFilter<T> : IFilter<ConsumeContext<T>> where T : DomainEvent
|
|
{
|
|
public async Task Send(ConsumeContext<T> context, IPipe<ConsumeContext<T>> next)
|
|
{
|
|
var cultureInfoName = context.Message.CultureInfoName;
|
|
|
|
if (!string.IsNullOrEmpty(cultureInfoName))
|
|
{
|
|
// 设置线程的文化信息
|
|
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureInfoName);
|
|
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureInfoName);
|
|
}
|
|
|
|
try
|
|
{
|
|
// 继续处理消息
|
|
await next.Send(context);
|
|
}
|
|
finally
|
|
{
|
|
// 还原文化信息(可选)
|
|
// Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // 或者之前的文化
|
|
// Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
|
|
}
|
|
}
|
|
|
|
public void Probe(ProbeContext context) { }
|
|
}
|