访问Blazor的文档XML.API文档的共享模型

时间:2020-07-04 21:13:03

标签: asp.net-core swagger blazor swashbuckle.aspnetcore

我有一个Blazor“全栈”(ASP.NET Core托管)解决方案,默认情况下包括三个项目:Blazor.ClientBlazor.ServerBlazor.Shared。我在Blazor.Server上有一些API控制器,其中一些控制器使用Blazor.Shared中的模型。这是默认情况下(使用示例WeatherForecast API)设置解决方案的方式。我为自己的API遵循了相同的模型。

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

        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.Server的{​​{1}}的路径。共享的xml文档位于bin项目中生成的单独的bin中。

我一直在搜索,但听起来似乎没有一种受支持的方法可以在网络核心中获得从一个项目到另一个项目的路径,因此我不确定该怎么做。我可以获取到Blazor.Shared箱的路径吗?还是我应该采取其他方法?最终:如何从Blazor.Server中的Startup.cs访问Blazor.Shared类的文档xml?

1 个答案:

答案 0 :(得分:0)

共享的xml文档位于单独的容器中

是的,但是通常将它们复制到构建版本的Server bin文件夹中。

我现在正在看一个类似的项目,并且“就可以了”。