Как изменить аргументы метода, используя PostSharp? - PullRequest
10 голосов
/ 20 декабря 2011

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

1 Ответ

17 голосов
/ 20 декабря 2011

Используя methodinterception, вы можете использовать объект 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();
    }       
}
...