pcb*_*iss 11 c# asp.net-web-api
我已成功将a添加web api controller到现有MVC4应用程序中.
我想拥有新的web api示例中提供的api文档功能(ex. http://sample.hostname.com/help).我相信这些都使用了这ApiExplorer门课.我尝试将HelpPage区域复制到我的项目中,但是我收到了错误
"无法构造String类型.您必须配置容器以提供此值"
当我尝试导航帮助.
我该怎么做才能添加API的自动文档?
正如其他人已经说过的那样,您必须先安装NuGet包Microsoft.AspNet.WebApi.HelpPage.这将在您的应用程序中创建一个新的HelpPage区域,其中包含显示文档所需的视图,模型和控制器.
但是,生成的HelpController包含重载的构造函数:
public HelpController(HttpConfiguration config)
{
Configuration = config;
}
Run Code Online (Sandbox Code Playgroud)
这似乎不适合Unity(或可能是任何类型的DI容器).你收到这个错误:
[InvalidOperationException: The type String cannot be constructed. You must configure the container to supply this value.]
Run Code Online (Sandbox Code Playgroud)
删除此重载,它应该工作.
还发现了另一个参考:http: //www.stefan-scheller.com/2013/08/the-type-string-cannot-be-constructed-web-api-with-unity/
V5.2.2具有以下代码:
public HelpController()
: this(GlobalConfiguration.Configuration)
{
}
public HelpController(HttpConfiguration config)
{
Configuration = config;
}
Run Code Online (Sandbox Code Playgroud)
在HelpController中
Unity使用具有最多参数的构造函数,因此为了使它使用无参数构造函数,我将第二个重载更改为protected:
protected HelpController(HttpConfiguration config)
{
Configuration = config;
}
Run Code Online (Sandbox Code Playgroud)
帮助页面又回来了
| 归档时间: |
|
| 查看次数: |
5191 次 |
| 最近记录: |