Tôi đang trong quá trình di chuyển thư viện được viết bằng C++ và có trình bao bọc C#. C# wrapper (LibWrapper
) có một tập hợp các lớp học với không gian tên, như:Lớp có cùng tên trong hai hội đồng (cố ý)
namespace MyNamespace
class MyClass
class MyOtherClass
thư viện mới của tôi, LibraryCS
chứa các không gian tên tương tự và tên lớp như LibWrapper
(theo yêu cầu của người sử dụng), vì vậy tôi cũng có:
namespace MyNamespace
class MyClass
class MyOtherClass
Bây giờ quá trình di chuyển được thực hiện, tôi đang trong quá trình tạo thử nghiệm so sánh kết quả của việc sử dụng cả hai thư viện, để xác thực di chuyển. Tuy nhiên, khi tôi cố gắng tham khảo MyNamespace.MyClass
tôi nhận được một lỗi trình biên dịch (dự kiến!) Mà nói "MyNamespace.MyClass được định nghĩa trong cả LibWrapper và LibraryCS".
Có bất kỳ mẹo nào xung quanh vấn đề này, điều đó sẽ cho phép tôi sử dụng hai lớp có cùng tên chính xác nhưng từ các hội đồng khác nhau trong cùng một mã máy khách không?
Ngoài ra, có cách nào khác để kiểm tra điều này không?
Đổi tên không gian tên được di chuyển thành một thứ như MyNamespace2
sẽ hoạt động, nhưng chúng tôi được yêu cầu không làm điều đó, để giữ cho mã máy khách dễ di chuyển hơn.
Bạn có thể viết trình bao bọc xung quanh một trong các lớp tồn tại trong không gian tên khác không? – Goblin
Nếu tôi có thể chạy cả hai trong cùng một mã kiểm tra, nó có thể được chấp nhận. Nó sẽ là một wrapper chỉ được sử dụng cho mục đích thử nghiệm. – pgb