哪个DLL包含泛型扩展方法?

时间:2009-11-20 23:42:34

标签: c# dll extension-methods

我正在尝试使用CodeDom.Compiler来动态编译源代码,这意味着我需要手动引用基本程序集。我正在编译的源代码必须能够访问基本的列表扩展方法,例如,Max(),Min()或Sum(),以及可能的lambda表达式。

当我编译源代码时,它说我缺少所需的程序集...目前我包含System.dll和System.Core.dll。

我需要哪个dll才能获得泛型的扩展方法?

2 个答案:

答案 0 :(得分:8)

看看这个blog post。您必须在调用CSharpCodeProvider constructor that receives a dictionary时手动指定编译器版本。像这样:

var provider = new CSharpCodeProvider(new Dictionary<string, string>{
                                       {"CompilerVersion", "v3.5"} });

答案 1 :(得分:0)

通过这种类型的麻烦的简单方法是查看Assembly.GetReferencedAssemblies(),并以这种方式添加对编译器的引用。然后你知道只要您的编译器在Visual Studio中编译,任何使用这些功能的代码都将使用您的编译器进行编译。