IValidatableObject.Validate()
リクエストを処理する前に、リポジトリに対してモデルのいくつかの側面をチェックするために使用したいと考えています。ただし、以下の構成_dalForValidation
では onModels.App
に設定されることはありません。つまり、デフォルトの空のコンストラクターが常に呼び出されます。
private static void ConfigureAutofac()
{
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterType<DataAccessFacade>().As<IDataAccess>().InstancePerApiRequest();
builder.RegisterType<Models.App>();
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
}
App
2 つのコンストラクターがあります。
public App(IDataAccess dalForValidation)
{
_dalForValidation = dalForValidation;
}
public App() {}
完全を期すために、これにアクセスしようとすると、null参照例外が発生します。
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var existingApps = _dalForValidation.FindApps().Convert<DB.App,App>();
if (!ValidateProxyMappings(existingApps))
yield return new ValidationResult("Invalid proxy mapping");
}
おそらく、依存関係リゾルバーはモデルに使用されていませんか、それとも他に何か不足していますか?