在另一个 dll 项目中定义的快速端点不起作用

问题描述 投票:0回答:1

我分叉了 ardalis git repo Clean Architecture。 在

SharePrompts.Web
项目中,
contributor
实体有一些快速端点。

我创建了一个新的 dll 项目

SharePrompts.Web.Cap
并添加了一个用于创建
post
实体的快速端点: https://github.com/dmitryst/SharePrompts/blob/cap/src/SharePrompts.Web.Cap/Posts/Create.cs

public class CreateEndpoint(IMediator _mediator) : Endpoint<CreatePostRequest, CreatePostResponse>
{
  public override void Configure()
  {
    Post("/posts");
    AllowAnonymous();
  }

  public override async Task HandleAsync(CreatePostRequest req, CancellationToken ct)
  {
    var result = await _mediator.Send(new CreatePostCommand(req.Title, req.Text, req.Tag, req.UserId), ct);

    if (result.IsSuccess)
    {
      Response = new CreatePostResponse(result.Value.Id, req.Title, req.Text, req.Tag);
      return;
    }
  }
}

SharePrompts.Web
SharePrompts.Web.Cap
项目的引用。

但问题是,

SharePrompts.Web.Cap
项目中添加的端点既无法被调用(返回404错误),也无法在swagger页面上可见。

如何解决这个问题?

c# .net swagger fast-endpoints
1个回答
0
投票

您需要通知 fastendpoints 在哪里可以找到位于不同程序集中的端点,如下所示:

builder.Services.AddFastEndpoints(
    o => o.Assemblies = new[]
    {
        typeof(SomeAssemblyName).Assembly,
        typeof(AnotherAssemblyName).Assembly
    });
© www.soinside.com 2019 - 2024. All rights reserved.