Lớp học có được nhận dạng duy nhất thông qua tên lớp, không gian tên cũng như lắp ráp trong một AppDomain không?
Câu trả lời ngắn gọn: có.
Câu trả lời dài hơn:
Có một số điểm cần xem xét.
Trước tiên, từ quan điểm CLR, không có điều gì là "không gian tên". Tên của loại chuỗi là System.String
đến mức CLR có liên quan. Vì vậy, nó là chính xác hơn để nói rằng từ quan điểm CLR, một loại được xác định duy nhất bởi tên và lắp ráp của nó.
Thứ hai, các loại có thể được lồng nhau. Vì vậy, các loại thực sự được xác định theo tên của chúng, có chứa loại (nếu có) và lắp ráp.
Thứ ba, các loại có thể là chung chung. Foo.Bar
và Foo.Bar<T>
là các loại khác nhau. Vì vậy, các loại được xác định bởi tên của chúng, có chứa loại, lắp ráp, và tính chất chung chung.
Thứ tư, và đây là điều kỳ lạ, CLR xem xét các loại trong các cụm được nạp với Load
khác với các loại trong cùng một cụm được nạp với LoadFrom
. Bạn có thể kết thúc với các tình huống mà CLR cho bạn biết rằng loại Foo trong Assembly Bar không tương thích với kiểu Foo trong Assembly Bar, và cậu bé, điều đó rất khó hiểu.
Nguồn
2016-01-14 03:22:50
Tại sao bạn đang sử dụng không gian tên cùng trong hội đồng khác nhau? Nghe có vẻ như nó đang hỏi rắc rối. –
@NickBailey Sử dụng cùng một tên không gian tên trong các hội đồng khác nhau không phải là xấu, như 'System.Collections.Generic' trong cả hai' System.dll' và 'System.Core.dll'. –