Asp.net web api 如何在内存中托管web api?
我有web api控制器,我想执行集成测试。因此,我按照本文配置了内存中的WebAPI主机。 我的集成测试和web api是同一VS解决方案中的两个不同项目 下面是代码 Web API控制器Asp.net web api 如何在内存中托管web api?,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,我有web api控制器,我想执行集成测试。因此,我按照本文配置了内存中的WebAPI主机。 我的集成测试和web api是同一VS解决方案中的两个不同项目 下面是代码 Web API控制器 public class DocumentController : ApiController { public DocumentController(IDomainService domainService) { _domainService = domainServic
public class DocumentController : ApiController
{
public DocumentController(IDomainService domainService)
{
_domainService = domainService;
}
[HttpPost]
public async Task<IEnumerable<string>> Update([FromBody]IEnumerable<Document> request)
{
return await _domainService.Update(request).ConfigureAwait(false);
}
}
我现在没有收到404错误。但是Unity无法解析DocumentController
。HttpResponse包含错误
尝试创建类型为的控制器时出错
“文档控制器”。确保控制器具有
无参数公共构造函数
在
TestInitialize
方法中,我正在调用unityWebPiActivator.Start()
,它用Unity注册所有需要的类型 我通过设置“HttpConfiguration.DependencyResolver”解决了第二个问题
[TestInitialize]
public void Init()
{
var config = new HttpConfiguration();
//UnityWebApiActivator.Start();
config.DependencyResolver = new UnityHierarchicalDependencyResolver(UnityConfig.GetConfiguredContainer());
WebApiConfig.Register(config);
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
_server = new HttpServer(config);
}
[TestInitialize]
public void Init()
{
var config = new HttpConfiguration();
UnityWebApiActivator.Start();
WebApiConfig.Register(config);
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
_server = new HttpServer(config);
}
[TestInitialize]
public void Init()
{
var config = new HttpConfiguration();
//UnityWebApiActivator.Start();
config.DependencyResolver = new UnityHierarchicalDependencyResolver(UnityConfig.GetConfiguredContainer());
WebApiConfig.Register(config);
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
_server = new HttpServer(config);
}