首页 > 解决方案 > 在 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)
        {
        }
    }
}

标签: c#

解决方案


推荐阅读