Мой текущий метод может ограничивать операции для работы со строками, но мне нужен более точный контроль зерна. Я хочу сделать что-то вроде, установить элементы в case title, которые будут применимы только к некоторым параметрам, но для этого мне нужно будет иметь возможность работать на уровне каждого параметра. Этот метод не позволяет проверять метаданные для отдельного параметра, например пользовательского атрибута?
(Я знаю, что есть лучшие способы обеспечить согласованный формат параметров, но это демонстрирует вопрос, на который я пытаюсь ответить).
/// <summary>
/// Checks all string parameters on a method and trims the input if
/// a non null string is identified.
/// </summary>
[Serializable]
public class TrimAllStringInputsAspect : MethodInterceptionAspect
{
public override void OnInvoke(MethodInterceptionArgs args)
{
for (int i = 0; i < args.Arguments.Count; i++)
{
var argVal = args.Arguments.GetArgument(i);
if (argVal != null)
{
if (argVal is String)
{
args.Arguments.SetArgument(i, argVal.ToString().Trim());
}
}
}
args.Proceed();
}
}