Для тех, кто искал решение для этого:
Сначала вам понадобится конструктор, который принимает аргумент DataTokens, и передайте его конструктору Route.
Например, яиспользовал класс DomainRoute, который я выбрал онлайн, у которого не было дополнительных аргументов, необходимых для передачи в домен.Поэтому я просто реализовал конструктор, аналогичный базовому конструктору Route :
public DomainRoute(string domain, string url, object defaults, object constraints, object dataTokens)
: base(url, new RouteValueDictionary(defaults), new RouteValueDictionary(constraints),new RouteValueDictionary(dataTokens),new MvcRouteHandler())
{
Domain = domain;
}
Далее, если вы переопределили свой метод GetRouteData , вы must возвращает DataTokens в вашем возвращаемом значении RouteData.Чтобы понять это, я должен был взглянуть на исходный код Route.cs (СПАСИБО JAVA2S).
RouteData data = new RouteData(...);
RouteValueDictionary dataTokens = DataTokens;
if (this.DataTokens != null) {
RouteValueDictionary rdDataTokens = rd.DataTokens;
foreach (var token in dataTokens)
rdDataTokens.Add (token.Key, token.Value);
}
}
return data;
Теперь просто вставьте свои пространства имен в dataTokens ["Namespaces"] согласно сообщению Fleents.
С уважением, Дэрил