• G# 微软的AOP?


    G#是一种基于.Net平台的一门新的语言, 它可以在编译期以及运行期为原有的代码注入新的代码. 并且新的代码同样能保证.net平台下的类型安全性.

    和CodeSmith不同的是 它的代码生成技术是为已有的代码添加新的功能, 也就是目前AOP技术所要实现的目标.

    如果你使用过Aspectj就会发现它语法的丑陋, 而G#的语法是C#2.0的一个子集,看上去非常的容易理解.并且G#是基于.Net的IL语言的,所以无论是C#还是VB.Net都可以发挥它的威力.

    来看一个小例子,你就会发现G#的优美之处.

    public class Client
    {
     
    public Client()
     
    {
      Messenger(“Hello World”); 
     }

     
    private void Messenger(string message)
     
    {
      Console.WriteLine(message);
     }

    }


    public generator Rename
    {
     
    static generation ChangeIt  : target Client.Messenger(string message)
     
    {
      pre
      
    {
       
    string oldMessage = message;

       message 
    = “Hello G#”;
      }

      post
      
    {
       message 
    = oldMessage;
      }

     }

    }


    再看看利用G#注入后的新的代码:

    private void Messenger(string message)
    {
     
    // From ChangeIt pre block.
     string oldMessage = message;

     
    // From ChangeIt pre block.
     message = “Hello G#”;

     
    // From the Messenger method body.
     Console.WriteLine(message);

     
    // From ChangIt post block.
     message = oldMessage;
    }


    有关G#的具体信息请访问这里

  • 相关阅读:
    Python3.x基础学习-静态方法和类方法
    Python3.x基础学习-@property
    Python3.x基础学习-装饰器
    SpringMVC学习(七)
    SpringMVC学习(六)
    SpringMVC学习(五)
    整合SSM(二)
    整合SSM(一)
    SpringMVC学习(四)
    SpringMVC学习(三)
  • 原文地址:https://www.cnblogs.com/idior/p/134257.html
Copyright © 2020-2023  润新知