Позвольте мне показать вам, как вы можете зарегистрировать маршрут, который указан в любом месте проекта, если файл DLL, содержащий файл, находится в папке bin.
определить интерфейс
public interface IRegiserRoute
{
void RegisterRoutes(RouteCollection routes);
}
Теперь скажите, что хотите зарегистрировать какой-нибудь маршрут где-то далеко в джунглях. Создайте класс и унаследуйте его от приведенного выше интерфейса.
public MyBlogRoutes : IRegiserRoute
{
public void RegisterRoutes(RouteCollection routes)
{
//register your stuff here.
}
}
Теперь, как вызвать этот маршрут из файла global.asax.
Загрузить все типы, которые унаследованы от IRegiserRoute (из Как найти все классы, реализующие данный интерфейс? )
var type = typeof(IRegiserRoute);
var types = AppDomain.CurrentDomain.GetAssemblies().ToList()
.SelectMany(a => a.GetTypes())
.Where(t => type.IsAssignableFrom(t))
select Activator.CreateInstance(t) as IRegiserRoute;
// Теперь регистрируем все ваши маршруты в любом месте в папке bin.
foreach (var t in types)
{
t.RegisterRoutes(routes);
}
Надеюсь, это должно помочь вам.
ура
* 1020 Parminder *