【问题标题】:Cannot add ValueProviderFactory to Web API无法将 ValueProviderFactory 添加到 Web API
【发布时间】:2013-07-20 03:54:14
【问题描述】:

我正在使用 MVC 4,我有这个简单的虚拟 ValueProvider:

class DummyValueProviderFactory : ValueProviderFactory
{
    public override IValueProvider GetValueProvider(ControllerContext controllerContext)
    {
        return new DummyValueProvider();
    }

    private class DummyValueProvider : IValueProvider
    {
        public DummyValueProvider()
        {
        }

        public bool ContainsPrefix(string prefix)
        {
            return true;
        }

        public ValueProviderResult GetValue(string key)
        {
            return null;
        }
    }
}

当我尝试在 Web API 中注册它的工厂时,我的问题仍然存在:

config.Services.Add(typeof(ValueProviderFactory), new DummyValueProviderFactory());

它可以编译,但是当服务器启动时,我得到一个 ArgumentException 告诉我 The service type ValueProviderFactory is not supported

我已阅读 this tutorialthis other one 并且都告诉我它应该可以正常工作。我做错了什么?

【问题讨论】:

    标签: asp.net asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    确保您引用的是 ASP.NET Web API 命名空间中的 ValueProviderFactory,而不是 MVC 命名空间。它们都具有相同的类名,但它们位于不同的命名空间中。

    【讨论】:

    • 成功了!谢谢!它引用了System.Web.Mvc.ValueProviderFactory,而不是正确的System.Web.Http.ValueProviders.ValueProviderFactory
    猜你喜欢
    • 1970-01-01
    • 2021-09-06
    • 2017-10-01
    • 2020-03-07
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多