【发布时间】:2017-06-18 02:31:15
【问题描述】:
我的HelpController 出现错误:
HelpController 类型的构造函数包含参数 名称 'config' 并键入未注册的 HttpConfiguration。 请确保 HttpConfiguration 已注册,或更改 HelpController 的构造函数。
由于我使用Configuration 来获取Configuration.GetModelDescriptionGenerator();,因此是否有其他方法可以解决此问题
public class HelpController : Controller
{
private const string ErrorViewName = "Error";
public HelpController(HttpConfiguration config)
{
Configuration = config;
}
public HttpConfiguration Configuration { get; private set; }
...
public ActionResult ResourceModel(string modelName)
{
if (!String.IsNullOrEmpty(modelName))
{
ModelDescriptionGenerator modelDescriptionGenerator = Configuration.GetModelDescriptionGenerator();
ModelDescription modelDescription;
if (modelDescriptionGenerator.GeneratedModels.TryGetValue(modelName, out modelDescription))
{
return View(modelDescription);
}
}
return View(ErrorViewName);
}
}
【问题讨论】:
-
您是否尝试注册
HttpConfiguration? -
@Steven 我如何在没有接口的情况下注册它?
-
我想我不太明白你的问题。你只需注册它。试试
container.RegisterSingleton<HttpConfiguration>(config);。 -
比@Steven 成功了
-
你从@Steven工作中得到这个建议吗?我的 Global.asax 中没有定义
config,如果我只尝试container.RegisterSingleton<HttpConfiguration>(),我会得到For the container to be able to create HttpConfiguration it should have only one public constructor: it has 2
标签: c# dependency-injection simple-injector httpconfiguration