访问 XML 的文档 Blazor.Shared 模型 API 文档

Accessing Documentation XML for Blazor.Shared Models for API Docs

我有一个 Blazor“全栈”(ASP.NET 核心托管)解决方案,默认包括三个项目:Blazor.ClientBlazor.ServerBlazor.Shared。我在 Blazor.Server 上有一些 API 控制器,其中一些控制器使用 Blazor.Shared 中的模型。这就是解决方案默认设置的方式(例如 WeatherForecast API)。我自己的 APIs.

也采用了相同的模型

我现在正在尝试将 Swagger 文档添加到我的项目中,但我不知道如何为 Blazor.Shared 中的模型添加 XML 文档。结果,我只得到控制器的描述,而不是它们使用的模型的描述。具体来说,我试图在 Startup.cs:

中添加两个 xml 文档文件
        services.AddSwaggerGen(options =>
        {
            options.SwaggerDoc("v1", new OpenApiInfo { Title = "MyProject", Version = "v1" });
            options.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "Blazor.Server.Doc.xml"));
            options.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "Blazor.Shared.Doc.xml"));
        });

然而,此处的第二行 IncludeXmlComments 导致异常,因为 System.AppContext.BaseDirectory 为我提供了 Blazor.Serverbin 的路径。共享 xml 文档位于 Blazor.Shared 项目中生成的单独 bin 中。

我一直在四处搜索,但听起来似乎没有一种受支持的方法可以在 net core 中获取从一个项目到另一个项目的路径,所以我不确定该怎么做。我能得到 Blazor.Shared bin 的路径吗?还是我应该采取不同的方式来解决这个问题?最终:如何从 Blazor.Server 中的 Startup.cs 访问 Blazor.Shared 类 的文档 xml?

The Shared xml docs live in a separate bin

是的,但它们通常会在构建时复制到服务器 bin 文件夹中。

我正在看一个类似的项目 'it just works'。