Following the advice got on another question of mine, I converted the code there quoted to be used with PostSharp:
Attribute:
[Serializable]
public sealed class InitAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
Console.Write("Works!");
}
}
static class Logger
{
public static string _severity;
public static void Init(string severity)
{
_severity = severity;
}
[Init()]
public static void p()
{
Console.WriteLine(_severity);
}
}
Still, I cannot get any result ("Works!" on the console). A breakpoint within the PostSharp attribute reveals that it is never entered.
Any Help? Thanks in advance.
PostSharp processes the compiled IL binary and adds action you want to the method body decorated with the attribute. The attribute won't do anything by itself. This is how CLR tends to work. It just treats attributes as data, not executable code. Without running PostSharp on the compiled code, you don't get anything special.
You do not need to execute the PostSharp command-line utility, but you need to install properly.
The easiest way is to install PostSharp using the installer.
Otherwise, you should edit your project file using a text editor as described in documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With