gpt4 book ai didi

c# - 类型 'Api.Controllers.' 没有默认构造函数

转载 作者:行者123 更新时间:2023-11-30 22:18:23 26 4
gpt4 key购买 nike

我有一个使用依赖注入(inject)的 Controller :

   public FeedController(IFeedProcessor feedProcessor)
{
_feedProcessor = feedProcessor;
}

这是我的配置代码:

public static void Config()
{

ObjectFactory.Initialize(x => x.Scan(scan =>
{
x.For<IFeedProcessor>().Use<FeedProcessor>();
}));
}

我的 FeedProcessor 类有参数构造函数:

 public FeedProcessor(IFeedParserFactory ifeedParserFactory)
{
_ifeedParserFactory = ifeedParserFactory;
}

这个 StructureMapControllerFactory:

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

我得到这个错误:类型“Api.Controllers.FeedController”没有默认构造函数我如何为这种情况配置结构图?

最佳答案

WebApi 不使用 DefaultControlFactory 来创建 Api Controller 的实例。相反,它使用 DefaultHttpControllerSelector。但是,除非您有创建 Controller 工厂的特定原因,否则我会改用 MVC 中内置的 Dependency Resolver 系统。

http://buchanan1966.tumblr.com/post/2192279804/mvc3-using-dependencyresolver-with-structuremap

http://marisks.net/2012/08/19/configuring-structuremap-in-aspnet-webapi/

关于c# - 类型 'Api.Controllers.' 没有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com