我有一个解决方案,我认为一个整洁的…
基于StrathWeb的博客:
https://www.strathweb.com/2013/08/customizing-controller-discovery-in-asp-net-web-api/
我已经实现了一个自定义
DefaultAssembliesResolver
它排除了包含导致这些问题的其他api控制器的程序集。
自定义解析器:
public class MyAssembliesResolver : DefaultAssembliesResolver
{
public override ICollection<Assembly> GetAssemblies()
{
ICollection<Assembly> baseAssemblies = base.GetAssemblies();
List<Assembly> assemblies = new List<Assembly>(baseAssemblies.Where(x=>!x.FullName.Contains("<nameOfAssemblyToExclude>")));
return assemblies;
}
}
然后替换启动类中的默认解析器:
config.Services.Replace(typeof(IAssembliesResolver), new MyAssembliesResolver());
这让我排除了额外的生产
ApiController
(我正在尝试测试),仅包括
顶点控制器
用于内存owin管道中的单元测试。