在.net 2.0/3.0程序中使用扩展方法

.NET Framework 从2.0升级至3.0/3.5中,增加了不少编译器级别的语法糖,如var关键字、自动属性、Lambda表达式、扩展方法等等。

如果使用vs2008发布.net2.0程序时,除了扩展方法外,其它的语法糖基本上都可以直接使用。但如果发布带扩展方法的程序则会编译出错。究其原因,是因为编译器将那些方法(扩展方法)带上ExtensionAttribute属性, 而ExtensionAttribute这个类却存在于.NET Framework 3.5的程序集中。

使用一个小技巧即可以使得带扩展方法的程序在.NET Framework 2.0/3.0时通过编译:自己定义这个ExtensionAttribute属性

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute { }
}

这样, 即使不引用3.5版本的程序集, 也可以享受扩展方法带来的便利!

原文地址:https://www.cnblogs.com/TianFang/p/1274678.html