Các dự án thường được chia thành các thư mục và các thư mục này thường được dự kiến ánh xạ tới các không gian tên mã. Tuy nhiên, trong nhiều dự án cốt lõi của tôi, tôi có các lớp mà tôi đã hợp nhất vào các không gian tên hiện có - ví dụ: tôi có thư viện tham chiếu MVC bổ sung các loại bổ sung vào ví dụ System.Web.Mvc
hoặc System.ComponentModel.DataAnnotations
.Cách ghi đè tự động thư mục namespace của VS2010 trong các tệp cs mới
Trong các dự án khác, tôi có thể có bộ giao diện và bộ triển khai mặc định của các giao diện đó; vì vậy tôi có thể chia các tệp mã thành hai thư mục riêng biệt (ví dụ: 'Đối tượng' và 'Giao diện') nhưng tôi không muốn có các không gian tên phụ Objects
và Interfaces
.
Tương tự, tôi thường viết các phương pháp mở rộng cho các loại trong thư viện khác - ví dụ: System.String
, mà tôi hợp nhất vào không gian tên System
để chúng đã 'có' ngay khi bạn tham chiếu đến hội đồng.
Vì vậy, cho một cấu trúc dự án như thế này (để đáp ứng với câu trả lời đầu tiên, dự án này được thiết kế để tạo ra một hội duy nhất với tất cả các không gian tên, và có thể là một dll mà có thể được ký kết):
Our.Core.Library
|->System
| |->StringExtensions.cs
|->System.Web.Mvc
| |->AnotherModelBinder.cs
|->OurCoreClass.cs
Ở trên, tôi muốn các tệp mới được thêm vào thư mục gốc nằm trong không gian tên Our.Core.Library
, nhưng tôi muốn các tệp mới được thêm vào thư mục System và System.Web.Mvc nằm trong số System
và System.Web.Mvc
tương ứng. Nhưng VS sẽ cung cấp cho họ một không gian tên mặc định là Our.Core.Library.System
.
Đó là một kẹp nhỏ, nhưng tôi muốn có thể ghi đè lên không gian tên mặc định cho một thư mục mã cụ thể để tôi có thể kiểm soát nó. Bất kỳ ý tưởng làm thế nào để đạt được điều này? Tôi đã thử một vùng tên mặc định rỗng cho dự án, điều này có thể làm cho nó hoạt động hợp lý cho các thư mục con, nhưng rõ ràng là không phải cho thư mục gốc; tuy nhiên, trang VS Properties không chấp nhận một không gian tên trống. Lý tưởng nhất nó sẽ là một giải pháp mà tôi có thể dễ dàng sao chép trên toàn bộ nhóm dev của chúng tôi để cho phép các nhà phát triển khác có thể thêm tệp mã trong khi tôn trọng cấu trúc không gian tên được đặt ra ở giai đoạn kiến trúc/lập kế hoạch.
Tôi biết thiết lập không gian tên mặc định (vui lòng xem các nhận xét đóng của tôi trong câu hỏi) và nhiều dự án không phù hợp vì tôi muốn các không gian tên khác nhau trong một DLL - mà không cần phải hợp nhất chúng với độ phức tạp liên quan đến quá trình xây dựng và các biến chứng với ký vv –