Tôi nhận thấy rằng phần mở rộng MapRoute bao gồm quá tải chấp nhận tham số string [] được gọi là 'không gian tên'. Tôi đọc những gì Google đã cho tôi về nó, và được cho là điều này là để giúp khung tìm bộ điều khiển ở những nơi mà nó sẽ không nhìn khác.Mảng tên miền điều khiển ASP.Net MVC
Tôi đã thực hiện một số thao tác và thử đặt bộ điều khiển ở các vị trí lạ. Tôi đặt một trong thư mục Scripts; Tôi thậm chí đã xây dựng một trong một hội đồng riêng biệt với một không gian tên gốc riêng biệt.
Nếu không đặt bất kỳ tham số nào vào thông số không gian tên, mọi thứ đều hoạt động tốt. Nếu tôi chỉ đặt một trong các không gian tên trong param không gian tên, nó vẫn tìm thấy tất cả các bộ điều khiển của tôi. Tôi nghĩ có lẽ nó sẽ sử dụng mảng đó để phân biệt giữa các bộ điều khiển tương tự, nhưng điều đó cũng không xảy ra. Một HomeController trong MyProj.Controllers và một trong SomeOtherName.Stuff sẽ vẫn xung đột.
Vì vậy, câu hỏi của tôi là, thông số đó có bị phản đối không? Hay nó vẫn được sử dụng bằng cách nào đó mà tôi chưa phân biệt?
Tôi nhận ra rằng đó là cách nó hoạt động, và tôi đã tìm được điểm tương tự mà bạn mô tả trong DefaultControllerFactory, nhưng khi tôi chạy các bài kiểm tra mô tả ở trên, đó không phải là cách nó hoạt động. Tôi đã cung cấp không gian tên không tồn tại và nhà máy vẫn tìm thấy bộ điều khiển của tôi. – Paul
Mã trong ControllerTypeCache chắc chắn có vẻ như nó hoạt động theo cách đó với tôi. Bạn có thể gỡ lỗi thông qua nó bằng cách xây dựng với nguồn. Có lẽ có cái gì đó bạn đã không cung cấp? –
Tôi đồng ý rằng nó trông như vậy, và tôi xây dựng w/nguồn khi thử nghiệm trước đây; Tôi sẽ thử lại w/một số thông số khác nhau. – Paul