/// <summary> /// Obtém informações de persistência definidas nos métodos /// </summary> /// <param name="invocation"></param> /// <returns></returns> protected IEnumerable <AttributeType> GetContextAttributes(IMethodInvocation invocation) { //Recupera os atributos do método IEnumerable <AttributeType> returnValue = invocation.GetAttibutes <AttributeType>(this.AttributeQueryFilter); return(returnValue); }
private static ExceptionHandlingAttribute GetAttribute(IMethodInvocation invocation) { ExceptionHandlingAttribute attribute = invocation.GetAttibutes <ExceptionHandlingAttribute>().FirstOrDefault(); if (attribute == null) { attribute = new ExceptionHandlingAttribute(ExceptionHandlingStrategy.BreakOnException); } if (attribute.Strategy.HasFlag(ExceptionHandlingStrategy.ContinueRunning) && (invocation.Method.ReturnType != typeof(void))) { throw new InvalidOperationException("Somente métodos com retorno void podem usar a estratégia de supressão de exceptions."); } return(attribute); }