public override void OnEntry(MethodExecutionArgs args) { var validator = (IValidator)Activator.CreateInstance(_validatorType); var entityType = _validatorType.BaseType.GetGenericArguments()[0]; var entities = args.Arguments.Where(t => t.GetType() == entityType); foreach (var item in entities) { ValidatorTool.FluentValidation(validator, item); } }
//methoda girdiğinde public override void OnEntry(MethodExecutionArgs args) { //depenceny injection ile hangi validatin gönderildiğini bulduk //onun instance oluşturduk var validator = (IValidator)Activator.CreateInstance(_validatorType); //oluşturulan instance ın hangi entity kullandığını bulduk var entityType = _validatorType.BaseType.GetGenericArguments()[0]; //validate edilecek entitileri buluyoruz. //args çalışılacak metodla ilgili bilgilere ulaşmaya yarar //metoddaki parametleri geziyorum ve tipi benim validate edeçeğim entitiyi buluyorum var entities = args.Arguments.Where(t => t.GetType() == entityType); foreach (var entity in entities) { ValidatorTool.FluentValidation(validator, entity); } }