2013-07-19 14 views
5

pracuję z MVC 4 i mam ten prosty atrapę ValueProvider:Nie można dodać ValueProviderFactory do 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; 
     } 
    } 
} 

I mój problem polega gdy próbuję zarejestrować go w fabrykę w API Web:

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

Kompiluje się poprawnie, ale po uruchomieniu serwera pojawia się ArgumentException informujący mnie o The service type ValueProviderFactory is not supported.

Przeczytałem this tutorial i this other one i obaj mówią mi, że powinien działać dobrze. Co ja robię źle?

Odpowiedz

4

Upewnij się, że odwołujesz się do ValueProviderFactory w przestrzeni nazw interfejsu API ASP.NET Web, a nie do obszaru nazw MVC. Oba mają tę samą nazwę klasy, ale znajdują się w różnych przestrzeniach nazw.

+1

Przybity! Dzięki! Odwoływał się do 'System.Web.Mvc.ValueProviderFactory', a nie' System.Web.Http.ValueProviders.ValueProviderFactory', który jest poprawny. –

Powiązane problemy