In No Buzzword AOP --- When we don't have aop, idior described a property debugging situation.
This is the AOP way based on AspectWeaver0.6.
DebugPropertyModifyingAspect.cs:
using
System;
using
AspectWeaver.Aspects;
namespace
TestAspects
{
public class DebugPropertyModifyingAspect : Aspect
{
[InlineAtStart("//Method[starts-with(@name, 'set_')]"), InlineBeforeReturn("//Method[starts-with(@name, 'set_')]")]
public void CodeForPrintPropertyValue()
{
string contextInfo = GetContextInfo();
string propertyName = contextInfo.Substring(contextInfo.IndexOf("_") + 1, contextInfo.IndexOf("(") - contextInfo.IndexOf("_") - 1);
Console.WriteLine(string.Format("{0}={1}", propertyName, this.GetType().GetProperty(propertyName).GetValue(this, null)));
}
}
}
Open "DebugPropertyValueModifying/DebugPropertyValueModifying.sln" to rebuild all projects.
Run "DebugPropertyValueModifying/TestConsole/bin/Debug/TestConsole.exe" before and after weaving.
Execute "DebugPropertyValueModifying/DoWeave.bat" to do the weaving.
TestConsole.exe running result before weaving:
Running OK!
Press any key to continue...
TestConsole.exe running result after weaving:
Name=
Name=name1
Name=name1
Name=name2
ID=0
ID=1
ID=1
ID=2
Speed=0
Speed=10
Speed=10
Speed=100.5
Speed=100.5
Speed=1221.12
Running OK!
Press any key to continue...
Download Source Code
博客介绍了在无AOP的情况下的属性调试情况,还提及基于AspectWeaver0.6的AOP方式,涉及DebugPropertyModifyingAspect.cs文件。
902

被折叠的 条评论
为什么被折叠?



