簡體   English   中英

C# 包命名空間

[英]C# Bundle Namespaces

我編寫了一個 C#-Solution,其中包括許多不同的項目。 由於此解決方案充當后端,因此我想為其編寫 API。 問題是客戶端必須添加相對大量的命名空間才能訪問必要的接口和類。 有沒有辦法將命名空間“捆綁”到一個命名空間(或至少更少的命名空間)中,這樣客戶端就不必添加那么多 using 指令,或者我是否必須完全重組我的后端?

非常感謝。

假設您的意思是創建一個 ASP.NET WebApi 應用程序,那么命名空間應該無關緊要。 任何消費應用程序都將接收數據作為沒有命名空間的 JSON。

您可以考慮使用像Swagger這樣的工具作為跨平台自動記錄 api 工具。 從 .net 的角度來看,有兩個流行的庫NSwagSwashbuckle可以幫助您入門。 NSwag 還包括通過檢查swagger.json文件(如舊的 WSDL 定義)來創建客戶端類的工具。

只要您的 JSON 對象具有相同的屬性名稱,任何客戶端都會很樂意將它們反序列化為自己的命名空間類。

如果您僅在內部使用此 api,則另一個可能更清晰的選項是在單獨的類庫中重現您希望通過 api 輸出的所有類。 然后 api 負責在現有命名空間/類和新命名空間/類之間進行映射。 Automapper 等工具對此有很大幫助。 它有一個好處,你可以自定義映射,使只有正是需要通過API發出的數據,所有無關的數據是沒有的。

然后可以在應用程序之間共享此類庫,作為項目引用、dll 或(如果設置正確,則最好)NuGet 包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM