2013-07-19 4 views
5

にValueProviderFactoryを追加することはできません私は MVC 4 で働いていると私はこの単純なダミーValueProviderありますは、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; 
     } 
    } 
} 

をそして私は、Web APIでそれの工場を登録しようとすると、私の問題が存在する:

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

コンパイルは正常ですが、サーバーが起動すると、私はThe service type ValueProviderFactory is not supportedを示すArgumentExceptionを取得します。

私はthis tutorialthis other oneを読んでおり、どちらも問題なく動作するはずです。私は間違って何をしていますか?

答えて

4

MVC名前空間ではなく、ASP.NET Web API名前空間でValueProviderFactoryを参照していることを確認してください。どちらも同じクラス名を持っていますが、異なる名前空間にあります。

+1

Nailed it!ありがとう!それは正しいものである 'System.Web.Http.ValueProviders.ValueProviderFactory'ではなく' System.Web.Mvc.ValueProviderFactory'を参照していました。 –