При помощи ответа от TcKs это может также быть сделано со следующим запросом LINQ:
bool isBar = foo.GetType().GetInterfaces().Any(x =>
x.IsGenericType &&
x.GetGenericTypeDefinition() == typeof(IBar<>));
Добавьте значение по умолчанию для activity
:
routes.MapRoute(null,
"Activity/{activityId}/Task/{action}/{id}/{activity}",
new {
controller = "Task",
action = "Edit",
id = "",
activityId = "",
activity = "" });
Помните также, что этот маршрут будет получать только URL-адреса в форме
/Activity/10/Edit/1/theActivity
, в то время как ваш пример
/Activity/10/Edit/1
будет выбранный маршрутом по умолчанию, установка значений маршрута в
controller = "Activity"
action = "10"
id = "Edit/1"
Отладчик маршрутизации Фила Хаака для ASP.NET MVC чрезвычайно полезен для выяснения того, как работать с этими вещами ...