Zauważyłem, że rozszerzenie MapRoute zawiera przeciążenie, które akceptuje parametr string [], który nazywa się "namespaces". Czytałem, co Google dla mnie na ten temat, i rzekomo ma to pomóc ramie znaleźć kontrolerów w miejscach, w których inaczej by nie wyglądało.Macierz przestrzeni nazw kontrolera ASP.Net MVC
Zrobiłem spike i próbowałem umieścić kontrolerów w dziwnych miejscach. Umieściłem jeden w folderze Skrypty; Zbudowałem nawet jeden w osobnym zestawie z oddzielną główną przestrzenią nazw.
Bez stawiania czegoś w param przestrzeni nazw wszystko działało dobrze. Jeśli umieściłem tylko jedną przestrzeń nazw w paramencie nazw, to nadal znajdowałem wszystkie moje kontrolery. Pomyślałem, że może użyje tej tablicy do rozróżnienia między kontrolerami o podobnych nazwach, ale tak się nie stało. HomeController w MyProj.Controllers i jeden w SomeOtherName.Stuff nadal by się kolidował.
Moje pytanie brzmi, czy ten parametr jest przestarzały? A może nadal jest używany w taki sposób, że jeszcze go nie rozpoznaję?
Rozumiem, że tak to powinno działać, i znalazłem to samo miejsce, które opisujesz w DefaultControllerFactory, ale kiedy przeprowadziłem opisane powyżej testy, to nie działa. Dostarczone przestrzenie nazw, które nie istniały, a fabryka wciąż znajdowała mojego kontrolera. – Paul
Kod w ControllerTypeCache pewnie wygląda tak, jak działa w ten sposób. Możesz debugować go, budując ze źródłem. Być może jest coś, czego nie dostarczyłeś? –
Zgadzam się, że wygląda to w ten sposób, a ja zbudowałem w źródle podczas testów; Spróbuję ponownie w/kilka różnych params. – Paul