Как изменить аргументы метода с помощью PostSharp?

Мне нужно сделать некоторые вещи с параметрами, переданными в мой метод. Как я могу играть с ними (изменять) с помощью PostSharp?

Ответ 1

Используя метод interception, вы можете использовать объект Args.Arguments для изменения значений с помощью метода SetArgument.

[Serializable]
public class MyAspect : MethodInterceptionAspect
{
    public override void OnInvoke(MethodInterceptionArgs args)
    {
        string input = (string)args.Arguments[0];

        if (input.Equals("123"))
        {
            args.Arguments.SetArgument(0, " 456");
        }

        args.Proceed();
    }       
}