2013-07-19 9 views
5

ich mit MVC 4 arbeiten bin, und ich habe diese einfache Attrappe Valueprovider:kann nicht hinzugefügt ValueProviderFactory zu Web API

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

Und mein Problem liegt, wenn ich versuche, es Fabrik in der Web-API zu registrieren:

Es kompiliert OK, aber wenn der Server startet, bekomme ich eine ArgumentException, die mir The service type ValueProviderFactory is not supported.

Ich habe gelesen this tutorial und this other one und beide sagen mir, es sollte gut funktionieren. Was mache ich falsch?

Antwort

4

Stellen Sie sicher, dass Sie auf die ValueProviderFactory im ASP.NET-Web-API-Namespace und nicht auf den MVC-Namespace verweisen. Sie haben beide den gleichen Klassennamen, befinden sich jedoch in verschiedenen Namespaces.

+1

Nailed it! Vielen Dank! Es referenzierte 'System.Web.Mvc.ValueProviderFactory', nicht' System.Web.Http.ValueProviders.ValueProviderFactory', welches das richtige ist. –

Verwandte Themen