AOP Practice with AspectWeaver0.6 - DebugPropertyValueModifying

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(thisnull)));
        }

    }

}

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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值