2009年7月5日 星期日

.Net 3.5 Extension Method

不需要有Source Code也可以在3 Party的類別上,加延伸的方法
這就是.Net 3.5 為什麼是base在 .Net 2.0的祕密
LINQ就是透過這個東西實作出來的。
使用.Net 2.0的System.Data.dll裡的
加上.Net 3.0的System.Core.dll裡的LinqExtension
就讓.Net 2.0的Class支援LINQ
而沒有重寫


public static class Extension
{
public static void DebugCmd(this log4net.ILog log,System.Data.Common.DbCommand cmd)
{
log.Debug(cmd.CommandText);
}
}
class Program
{
public static void Main(string[] args)
{
log4net.ILog log=log4net.LogManager.GetLogger(typeof(Program));
OracleCommand cmd=new OracleCommand();
cmd.CommandText="Select sysdate from dual";
log.DebugCmd(cmd);
}
}

沒有留言: