2011-07-28 9 views
0

Stack Exchangeの皆様。テストWebActivatorを使用してクラスをアクティブ化していて、ModelBinderProviders.BinderProvidersにIModelBinderを追加する場合。

カスタムモデルバインダーがModelBinderProviders.BinderProvidersコレクションに追加されているかどうかをテストしようとしています。 私は すべてが正常に動作し、Global.asaxのをいじり避けるために、WebActivatorを介してこれを有効にすることを決めたが、テスト:

私はWebActivator.ActivationManager.Run()メソッドを使用してみましたが、私の事はロードされませんでした。 私は私のテストではこのような何かをしました:

[TestMethod] 
public void TemplateModelBinderProvider_Should_Be_Registered_In_BinderProviders() 
{ 
    WebActivator.ActivationManager.Run(); 
    IModelBinderProvider templateModelBinderProvider = ModelBinderProviders.BinderProviders. 
     Where(x => x is TemplateModelBinderProvider). 
     FirstOrDefault(); 

    Assert.IsNotNull(templateModelBinderProvider); 
} 

を、これは私のapp_Startクラスです:

[assembly: WebActivator.PreApplicationStartMethod(typeof(MVC.App_Start.MVCBindings), "Start")] 
namespace MVC.App_Start 
{ 
    public static class MVCBindings 
    {  
     public static void Start() 
     { 
      ModelBinderProviders.BinderProviders.Add(new TemplateModelBinderProvider()); 
     } 
    } 
} 

答えて

0

は申し訳ありませんが、私が書いたコードの一部に問題があります。

私は今すぐソースコードにアクセスできませんが、夕方(英国時間)に表示されます。

あなたのソリューションを私に送ってローカルに複製できると思いますか?私の電子メールは、gmail.comでjkoneckiある

UPDATE

私はあなたのソースコードを受け取っているが、残念ながらそれは私が得ることができない、私はそれをコンパイルすることはできませんライブラリへの参照が含まれています。

MVC3 Webアプリケーションとカスタムモデルバインダーを使用する単体テストプロジェクトで別々のソリューションを作成しました。 WebActivatorManager.Runメソッドがカスタムプロバイダを正しく登録することを証明する2つのテストがあります。

ユニットテストをデバッグして、Runメソッドが静的なStartメソッドを呼び出すようにしてください。

WebActivatorのソースコードはhereです。あなたはそれを取得し、ステップスルーしたいかもしれません。

+0

何が間違っているとコメントしてください。 –

関連する問題