Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. public class CustomHttpControllerSelector : DefaultHttpControllerSelector {
  2. private readonly HttpConfiguration _configuration;
  3.  
  4. public CustomHttpControllerSelector(HttpConfiguration configuration) : base(configuration) {
  5. _configuration = configuration;
  6. }
  7.  
  8. public override HttpControllerDescriptor SelectController(HttpRequestMessage request) {
  9. HttpControllerDescriptor controller;
  10. try {
  11. controller = base.SelectController(request);
  12. }
  13. catch (Exception ex) {
  14. String controllerName = base.GetControllerName(request);
  15. Assembly assembly = Assembly.LoadFile(String.Format("{0}pak\{1}.dll", HostingEnvironment.ApplicationPhysicalPath, controllerName));
  16. Type controllerType = assembly.GetTypes()
  17. .Where(i => typeof(IHttpController).IsAssignableFrom(i)).ToList()
  18. .FirstOrDefault(i => i.Name.ToLower() == controllerName.ToLower() + "controller");
  19. controller = new HttpControllerDescriptor(_configuration, controllerName, controllerType);
  20. }
  21. return controller;
  22. }
  23. }
  24.  
  25. config.Services.Replace(typeof(IHttpControllerSelector), new CustomHttpControllerSelector(config));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement