10

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ụ ObjectsInterfaces.

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ố SystemSystem.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.

Trả lời

0

Về cơ bản là cách duy nhất tôi sẽ có thể làm điều này là để viết phần mở rộng của riêng tôi để Visual Studio. Nó thậm chí có thể yêu cầu dự án của riêng nó hoặc mục wizard - nếu tôi có thể nhận được bất cứ điều gì làm việc tôi sẽ đăng nó lên ở đây trong tương lai.

0

Mọi cài đặt dự án C# đều có tùy chọn Default namespace trong tab ứng dụng mà bạn có thể thay đổi thành bất kỳ giá trị nào khác sẽ có hiệu lực khi bạn thêm nhiều tệp vào dự án. Chỉ có một thiết lập cho phép mỗi dự án

enter image description here

Bạn có thể phá vỡ dự án của bạn thành nhiều dự án và có mặc định khác nhau đối với các dự án khác nhau

+1

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 –

Các vấn đề liên quan