private void EnsureIsSecure <T>(T obj, Type validatorType) { if (!_objectFactory.CanCreate(validatorType)) { return; } var validator = _objectFactory.Create(validatorType) as ISecurityValidator <T>; if (validator == null) { throw new InvalidOperationException("Object factory returned null for security validator."); } var validationResult = validator.Validate(obj); if (!validationResult.IsValid) { throw new SecurityValidatorException(validationResult.Errors); } }