Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CustomHttpControllerSelector : DefaultHttpControllerSelector {
- private readonly HttpConfiguration _configuration;
- public CustomHttpControllerSelector(HttpConfiguration configuration) : base(configuration) {
- _configuration = configuration;
- }
- public override HttpControllerDescriptor SelectController(HttpRequestMessage request) {
- HttpControllerDescriptor controller;
- try {
- controller = base.SelectController(request);
- }
- catch (Exception ex) {
- String controllerName = base.GetControllerName(request);
- Assembly assembly = Assembly.LoadFile(String.Format("{0}pak\{1}.dll", HostingEnvironment.ApplicationPhysicalPath, controllerName));
- Type controllerType = assembly.GetTypes()
- .Where(i => typeof(IHttpController).IsAssignableFrom(i)).ToList()
- .FirstOrDefault(i => i.Name.ToLower() == controllerName.ToLower() + "controller");
- controller = new HttpControllerDescriptor(_configuration, controllerName, controllerType);
- }
- return controller;
- }
- }
- config.Services.Replace(typeof(IHttpControllerSelector), new CustomHttpControllerSelector(config));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement