zoukankan      html  css  js  c++  java
  • 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#的具体信息请访问这里

  • 相关阅读:
    数据库索引分析(一)
    对象的序列化(串行化)分析(一)
    Java 集合类 TreeSet、TreeMap
    查找杀死指定进程delphi
    delphi集合的用法
    debian 删除软件
    linux 各种国内源更新 (source)
    screen 命令使用记录
    Python 常用import
    常用Python函数
  • 原文地址:https://www.cnblogs.com/idior/p/134257.html
Copyright © 2011-2022 走看看