Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型';Api.控制器和#x27;没有默认构造函数_C#_Asp.net Mvc_Dependency Injection_Asp.net Web Api - Fatal编程技术网

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;
        }
    }