所以我有一個包含兩個專案的解決方案,主專案是MultipleProjectsSwaggerDocs然后Public我添加作為對主專案的參考。這兩個都是ASP.NET Web API (.NET 6)我的主專案作為啟動專案。
例如,我正在嘗試設定 Swagger,以便函式上方的 xml 注釋顯示在 UI 中。


但正如您所看到的,另一個 xml 檔案的路徑是硬編碼的,如果我要托管該專案,那就不好了,因為它找不到該檔案。我可以做些什么來將其指向第二個專案嗎?
如果這不是AddSwaggerGen在一個解決方案中設定兩個專案的正確方法,那是什么?
uj5u.com熱心網友回復:
看,沒有必要對第二個 xml 注釋檔案的完整路徑進行硬編碼。當你連接第一個檔案時,你寫了Path.Combine(AppContext.BaseDirectory, xmlFilename). 沒有人禁止你對第二個做同樣的事情:)
例如,我通常使用以下代碼將我的 xml 注釋連接到 Swagger:
string[] allMyXmlCommentFileNames =
{
$"{Assembly.GetExecutingAssembly().GetName().Name}.xml",
"Public.xml"
};
foreach (string fileName in allMyXmlCommentFileNames)
{
string xmlFilePath = Path.Combine(AppContext.BaseDirectory, fileName);
if (File.Exists(xmlFilePath))
options.IncludeXmlComments(xmlFilePath, includeControllerXmlComments: true);
}
為什么這應該起作用的一些理論
例如,如果您打開Public\Public.csproj檔案,那么在我的情況下,如果我將 xml 注釋生成添加到此專案,Rider 將在此檔案中為我生成以下代碼:
<DocumentationFile>bin\Debug\net6.0\Public.xml</DocumentationFile>
當您構建 .NET 專案時,鏈接到它的所有專案都作為單獨的 dll 添加到bin\Debug\net6.0您正在構建的專案的檔案夾中。它也適用于 xml 注釋,它們也將在那里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493769.html
標籤:C# 网 。网 asp.net-web-api 昂首阔步
上一篇:連接到ASP.NETWebAPI的Angular專案不在瀏覽器中顯示資料
下一篇:JsonDocumentAPI拋出例外“請求的操作需要'Object'型別的元素,但目標元素的型別為'Array'”
