2013-07-19 13 views
5

मैं साथ काम कर रहा हूँ MVC 4 को ValueProviderFactory नहीं जोड़ा जा सकता है और मैं इस सरल डमी 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; 
     } 
    } 
} 

और मेरी समस्या रहता है जब मैं वेब एपीआई में यह कारखाना रजिस्टर करने के लिए प्रयास करें:

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

यह ठीक संकलित करता है, लेकिन जब सर्वर शुरू होता है, तो मुझे The service type ValueProviderFactory is not supported बताते हुए एक ArgumentException मिलता है।

मैंने this tutorial और this other one पढ़ा है और दोनों मुझे बता रहे हैं कि इसे ठीक काम करना चाहिए। मैं क्या गलत कर रहा हूं?

उत्तर

4

सुनिश्चित करें कि आप ASP.NET वेब एपीआई नेमस्पेस में ValueProviderFactory का संदर्भ दे रहे हैं, और एमवीसी नेमस्पेस नहीं। दोनों के पास एक ही वर्ग का नाम है, लेकिन वे अलग-अलग नामस्थानों में हैं।

+1

इसे खींचा! धन्यवाद! यह 'System.Web.Mvc.ValueProviderFactory' का संदर्भ दे रहा था, न कि 'System.Web.Http.ValueProviders.ValueProviderFactory' जो सही है। –