arn*_*rob 3 .net c# asp.net-mvc-4 asp.net-web-api
如何将Web Api Controller添加到其他程序集?我想将Web API控制器与我的MVC应用程序分开.
WebApi开箱即用.
DefaultAssembliesResolver类是用于加载程序集以查找ApiControllers的类.这是源代码:
public class DefaultAssembliesResolver : IAssembliesResolver {
public virtual ICollection<Assembly> GetAssemblies() {
return AppDomain.CurrentDomain.GetAssemblies().ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
诀窍是在第一次调用web.api服务之前将程序集加载到AppDomain.
在目标程序集中调用类的任何方法,或者只是从中加载一个类型.例如:
var x = typeof (YourApiControllerInAnotherAssembly);
Run Code Online (Sandbox Code Playgroud)
如果您使用的是旧版本的WebApi,请尝试实现IAssembliesResolver并更改其默认实现,如下所示:
GlobalConfiguration.Configuration.Services.Replace(typeof(IAssembliesResolver),
new YourCustomAssemblyResolver());
Run Code Online (Sandbox Code Playgroud)