默认情况下webapi从当前应用程序域加载控制器,我们可以通过继承DefaultAssembliesResolver类来从新配置入口
需要从写GetAssemblies方法,我们把控制器单独拎出到一个类库中,然后编译控制器所在的类库,并将相关的依赖dll(系统dll除外)拿出来,然后
装载这些dll
/// <summary>
/// 装载控制器
/// </summary>
internal class ControllerResolver : DefaultAssembliesResolver
{
public override ICollection<Assembly> GetAssemblies()
{
var apiController = LoadController();
return apiController;
}
private ICollection<Assembly> LoadController()
{
// return AppDomain.CurrentDomain.GetAssemblies().ToList<Assembly>();
const string apiPath = "webapi"; //应用程序根目录下的webapi文件夹中存放api文件
const string ctlfile = ".dll"; //加载的pai文件的扩展名须是dll
ICollection<Assembly> baseAssemblies = base.GetAssemblies();