CSharp.Template/YuanXuan.IM.Api/CollectionExtensions/YarpServiceCollectionExtens...

37 lines
1.1 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Primitives;
using Nacos.V2;
using Nacos.V2.Naming;
using Nacos.V2.Naming.Dtos;
using Newtonsoft.Json;
using System.Threading;
using Yarp.ReverseProxy.Configuration;
using YuanXuan.IM.Api.Proxy;
namespace YuanXuan.IM.Api.CollectionExtensions
{
public static class YarpServiceCollectionExtensions
{
/// <summary>
/// 添加YARP反向代理服务
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <returns></returns>
public static IServiceCollection AddYarpWithNacos(this IServiceCollection services, IConfiguration configuration)
{
// 添加YARP服务
services.AddReverseProxy();
// 注册Nacos服务发现提供者
services.AddSingleton<NacosProxyConfigProvider>();
services.AddSingleton<IProxyConfigProvider>(provider => provider.GetRequiredService<NacosProxyConfigProvider>());
return services;
}
}
}