using System;

namespace Dpz.Core.SourceGenerator.Attributes;

/// <summary>
/// 配置由源生成器生成的 typed HttpClient 依赖注入注册。
/// </summary>
/// <remarks>
/// 该特性用于需要通过 <c>AddHttpClient&lt;TService, TImplementation&gt;</c>
/// 注册的服务实现,例如依赖外部 HTTP API 的服务。
/// </remarks>
[AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class, Inherited = false)]
public sealed class HttpClientDependencyInjectionAttribute(string baseAddress) : Attribute
{
    /// <summary>
    /// HttpClient 的基础地址。
    /// </summary>
    public string BaseAddress { get; } = baseAddress;

    /// <summary>
    /// HttpClient 的超时时间,单位为秒;小于等于 0 时使用 HttpClientFactory 默认值。
    /// </summary>
    public int TimeoutSeconds { get; set; }
}
评论加载中...