• 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 

  • 相关阅读:
    在java中怎样获得当前日期时间
    java 常见异常
    线程中的current thread not owner异常错误
    hibernate 关于hbm.xml编写的总结
    java web 常见异常及解决办法
    初用Ajax
    JavaScript动态修改html组件form的action属性
    Ajax中文乱码的解决
    No repository found error in Installing ADT
    eclipse 安装 CDT
  • 原文地址:https://www.cnblogs.com/teddyma/p/251771.html
Copyright © 2020-2023  润新知