2012-03-05 26 views
7

Không chắc chắn làm thế nào để cụm từ câu hỏi này, nhưng đây là vấn đề.Có thể đảo ngược bí danh không gian tên C# không?

Tôi có một namespace thiết kế: my.foo.bar

Trong một lớp học của tôi, tôi vô tình đặt tên không gian tên my.foo.Bar

Tôi muốn sửa chữa giá trị vốn hóa không gian tên để mọi người là trên cùng một trang, nhưng đây là một thư viện được chia sẻ, và tôi không đủ khả năng để biên dịch lại tất cả các chương trình bằng cách sử dụng nó.

Vì vậy, có điều gì đó tôi có thể tạo ra, về bản chất, chuyển hướng my.foo.Bar đến my.foo.bar?

+0

Sử dụng VB.NET để truy cập thư viện của bạn - trường hợp không phân biệt chữ hoa chữ thường. ;-) (ok, chỉ đùa thôi) – Heinzi

Trả lời

7

Không phải trên toàn cầu. Bạn có thể sử dụng namespace aliases, nhưng chỉ trong mã khách hàng. Có vẻ như bạn có thể cần phải thay đổi đột phá.

Một cách để thực hiện, nếu đó chỉ là một hoặc hai lớp, sẽ sao chép chúng từ my.foo.Bar đến my.foo.bar, không dùng nữa trong không gian tên xấu bằng cách sử dụng Obsolete attribute và từ từ di chuyển khách hàng sang đúng.

Nếu lớp không có quốc tịch, thì lớp trong không gian tên my.foo.Bar có thể ủy quyền cho không gian tên my.foo.bar như @JohnSaunders đề xuất, nhưng chỉ khi khách hàng sử dụng lớp đó không loại trừ ủy quyền (mọi thứ là phương pháp hoặc một thuộc tính, Loại của lớp đó không được sử dụng thông qua sự phản chiếu, vv).

+0

+1 cho thuộc tính Lỗi thời. – Heinzi

+0

Trong trường hợp này, đó là một lớp nhỏ, 4 thuộc tính và 3 hàm tạo quá tải. – IronicMuffin

6

Điều tốt nhất bạn có thể làm là lấy tất cả các loại trong không gian tên có tên kém và tạo phiên bản của chúng trong không gian tên chính xác. Chúng có thể ủy quyền cho các phiên bản không gian tên xấu.

+1

Có lẽ 'sử dụng myBar = my.foo.Bar'. Hạn chế 'unmodifiable thư viện được chia sẻ' rất nhiều hạn chế các tùy chọn. – Steve

+0

@John Tôi sẽ làm như thế nào? Thừa kế từ lớp trong không gian tên kém? Điều đó có đủ tốt không? – IronicMuffin

+0

Tôi sử dụng ReSharper, vì vậy tôi chỉ cần nói với nó để tạo thành viên ủy nhiệm. –

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