C# 类型';Api.控制器和#x27;没有默认构造函数
我有一个使用依赖项注入的控制器:C# 类型';Api.控制器和#x27;没有默认构造函数,c#,asp.net-mvc,dependency-injection,asp.net-web-api,C#,Asp.net Mvc,Dependency Injection,Asp.net Web Api,我有一个使用依赖项注入的控制器: public FeedController(IFeedProcessor feedProcessor) { _feedProcessor = feedProcessor; } 这是我的配置代码: public static void Config() { ObjectFactory.Initialize(x => x.Scan(scan =>
public FeedController(IFeedProcessor feedProcessor)
{
_feedProcessor = feedProcessor;
}
这是我的配置代码:
public static void Config()
{
ObjectFactory.Initialize(x => x.Scan(scan =>
{
x.For<IFeedProcessor>().Use<FeedProcessor>();
}));
}
此结构映射控制器工厂
:
我得到了这个错误:
类型“Api.Controllers.FeedController”没有默认构造函数
如何配置此场景的结构映射?WebApi不使用
DefaultControlFactory
创建Api控制器的实例。相反,它使用DefaultHttpControllerSelector
。但是,除非您有创建控制器工厂的特定原因,否则我将使用内置于MVC中的依赖项解析器系统
我最终得到了这个异常,因为我的应用程序中有几个类存在循环依赖关系。请将您的代码发布到哪里设置依赖关系解析程序!您的IFeedParserFactory(FeedController的依赖项)注册是否正确?
public FeedProcessor(IFeedParserFactory ifeedParserFactory)
{
_ifeedParserFactory = ifeedParserFactory;
}
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
if (requestContext.HttpContext.Request.Url != null)
throw new InvalidOperationException(string.Format("Page not found: {0}", requestContext.HttpContext.Request.Url.AbsoluteUri.ToString(CultureInfo.InvariantCulture)));
return ObjectFactory.GetInstance(controllerType) as Controller;
}
}