API文档 - Errors/ServerInteractive/XFE0011

代码诊断-XFE0011

描述

目标:XFEExtension.NetCore.ServerInteractive
代码:XFE0011
级别:❌️ 错误
描述:同一类中 RequestResponse 的路径/名称发生重复注册。

我为何会看到此错误?

说明:

ClientRequestGenerator 中,会分别对 [Request][Response] 做键唯一性校验。

同一类、同一类型(RequestResponse)内,以下键都必须唯一:

  • 路径(特性构造参数)
  • 名称(Name 命名参数,若提供)

如果出现以下任一情况,就会报 XFE0011

  • 两个方法使用了相同 Path
  • 两个方法使用了相同 Name
  • 某方法的 Name 与另一个方法的 Path 冲突

解决办法:

保证同一类中同类型键唯一:

  1. 每个方法使用不同路径;
  2. 每个 Name 唯一;
  3. 避免 Name 与任何已有路径重复。
using XFEExtension.NetCore.ServerInteractive.Attributes;

namespace Demo;

public partial class UserRequestService : StandardRequestServiceBase
{
    // ❌ 错误:Request 路径重复
    [Request("api/user/get", Name = "GetUser")]
    public object GetUserA()
    {
        return new { Id = 1 };
    }

    [Request("api/user/get", Name = "GetUserById")]
    public object GetUserB()
    {
        return new { Id = 2 };
    }
}
using XFEExtension.NetCore.ServerInteractive.Attributes;

namespace Demo;

public partial class UserRequestService : StandardRequestServiceBase
{
    // ❌ 错误:Name 与已有 Path 冲突
    [Request("api/user/get", Name = "GetUser")]
    public object GetUserA()
    {
        return new { Id = 1 };
    }

    [Request("api/user/detail", Name = "api/user/get")]
    public object GetUserB()
    {
        return new { Id = 2 };
    }
}
using XFEExtension.NetCore.ServerInteractive.Attributes;

namespace Demo;

public partial class UserRequestService : StandardRequestServiceBase
{
    // ✅ 正确:同一类型内 Path / Name 都唯一
    [Request("api/user/get", Name = "GetUser")]
    public object GetUser()
    {
        return new { Id = 1 };
    }

    [Request("api/user/detail", Name = "GetUserDetail")]
    public object GetUserDetail()
    {
        return new { Id = 1, Detail = true };
    }

    // ✅ Response 集合单独校验;也应保持自身唯一
    [Response("api/user/version", Name = "GetVersion")]
    public object GetVersion()
    {
        return new { Version = "1.0.0" };
    }
}