c# - 在 CodeDorProvider 的源代码中添加引用 ValueTuple
问题描述
我有一个带有代码的应用程序:
CodeDomProvider provider = CodeDomProvider.CreateProvider("cs");
CompilerParameters parameters = new CompilerParameters()
{
GenerateExecutable = true,
GenerateInMemory = true,
IncludeDebugInformation = false,
CompilerOptions = "/optimize"
};
parameters.ReferencedAssemblies.Add("mscorlib.dll");
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Core.dll");
parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");
parameters.ReferencedAssemblies.Add("System.ValueTuple.dll");
parameters.ReferencedAssemblies.Add("System.Data.dll");
parameters.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
parameters.ReferencedAssemblies.Add("netstandard.dll");
parameters.ReferencedAssemblies.Add("System.Runtime.dll");
string source = "...";
CompilerResults cr = provider.CompileAssemblyFromSource(parameters, source);
StringCollection output = cr.Output;
但是在编译时,返回错误参考以下行:
List<(int line, string name, decimal salary)> _order = new List<(int line, string name, decimal salary)>();
“无效的表达术语”
请帮帮我!!
预览错误源:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Dominio.Main
{
public class OrderByTable
{
delegate IEnumerable<int> MethodDelegate();
public IEnumerable<int> LambdaMethod(Table table)
{
List<(int line, string NAME , decimal SALARY )> _order = new List<(int line, string NAME , decimal SALARY )>();
return obj2;
}
static void Main(string[] args)
{
}
}
}