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());
}
}
}
何が間違っているとコメントしてください。 –