5

我正在使用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

我已经阅读了本教程另一本教程,两者都告诉我它应该可以正常工作。我究竟做错了什么?

4

1 回答 1

4

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

于 2013-07-19T19:54:14.697 回答