ASP.NET WebApi Controllers in the external dll using MEF -


i have simple apicontroller in separate project:

<export("custom", gettype(apicontroller)), partcreationpolicy(creationpolicy.nonshared)> public class customcontroller     inherits apicontroller      public function getsomething() httpresponsemessage         dim result new something() {              .code = "code",              .somefield = "something",              .somefield2 = 5             }         return request.createresponse(system.net.httpstatuscode.ok, result)     end function  end class 

after googlinng while i've managed point controller gets resolved using custom implementations of ihttpcontrollerselector , ihttpcontrolleractivator. getting error: "no action found on controller 'custom' matches name 'getsomething'". means have implement ihttpactionselector , else afterwards... sounds complicated , illogical, i'm not trying custom handling. hints i'm going wrong?

to have webapi controller in external library appeared extremely simple. need have custom assembliesresolver registered. mef registration loading external dll's already.

trick can can't use defaultassembliesresolver , override function getassemblies(). have implement iassembliesresolver.

here code gave needed:

mef registration (just part extensions loaded):

    dim extensionscatalog new directorycatalog(settings.getvalue("extensionsfolder"))     dim container new compositioncontainer(extensionscatalog, defaultcatalogep) 

global.asax

globalconfiguration.configuration.services.replace(gettype(iassembliesresolver), new models.customassembliesresolver()) 

customassembliesresolver class

    public class customassembliesresolver     implements iassembliesresolver      public function getassemblies() icollection(of assembly) implements iassembliesresolver.getassemblies         dim assemblies list(of assembly) = appdomain.currentdomain.getassemblies().tolist()         return assemblies     end function  end class 

and have new controllers "adding automatically" , using mef override/extend base webapis.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -