背景:
阅读新闻

G# 微软的AOP?

[日期:2005-04-08] 来源:alphatom  作者:idior [字体: ]

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#的具体信息请访问这里

收藏 推荐 打印 | 录入:木鸟 | 阅读:
相关新闻      
本文评论   [发表评论]   全部评论 (0)
热门评论