zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    如何用代码设置图层在特定比例尺下显示
    typeof
    gauss
    is
    SelectByShape
    layer,featureclass,etc(OGR,原来是讲OGR的,不是ESRI的产品的)
    featurecursor
    rubberband
    渐变弹出层
    [置顶] 任务二 基本的数据库操作
  • 原文地址:https://www.cnblogs.com/teddyma/p/251771.html
Copyright © 2011-2022 走看看