C# 为什么我不能用Mono';谁是评估者?

C# 为什么我不能用Mono';谁是评估者?,c#,.net,mono,C#,.net,Mono,我试图在MS.NET框架中使用Mono项目中的C#Evaluator。简单表达式编译运行良好。例如: var report = new Report(new Printer()); var settings = new CommandLineParser(report).ParseArguments(new string[] { }); var eval = new Evaluator(settings, report); //

我试图在MS.NET框架中使用Mono项目中的C#Evaluator。简单表达式编译运行良好。例如:

        var report = new Report(new Printer());
        var settings = new CommandLineParser(report).ParseArguments(new string[] { });
        var eval =  new Evaluator(settings, report);

        // ensure that the LINQ to object assembly is referenced
        eval.ReferenceAssembly(typeof(Enumerable).Assembly);

        eval.Run("using System;");
        eval.Run("using System.Collections.Generic;");
        eval.Run("using System.Linq;");

        // Runs just fine:
        eval.Run("IEnumerable<string> allData = new string[0];");
        eval.Run("Console.Out.WriteLine(allData.Count());");
        // Crashes:
        eval.Run("IEnumerable<string> allData = new string[0];");
        eval.Run("var filtered = from d in allData select d;");
        eval.Run("Console.Out.WriteLine(filtered.Count());");

我是不是做错了什么?或者Mono evaluator显然还没有准备好使用吗?

只需删除以下代码行:

// ensure that the LINQ to object assembly is referenced
eval.ReferenceAssembly(typeof(Enumerable).Assembly);

这是不必要的,因为您已经通过
使用
指令引用了它。

您是否尝试将
var
替换为实际类型,即
IEnumerable
?答案可能在这里:InternalErrorException不是一件好事。你没有做错什么。如果您仍然遇到此问题,请使用新的Mono进行测试,并在bugzilla上提交一个bug。谢谢现在我已经试过了。修复异常并返回编译错误。来自.NET framework和Mono程序集的属性发生冲突。我会检查的。谢谢。@Jb-Evain:我在主干/主收银台上运行。在输入错误之前,首先要避免我这边的任何错误。
// ensure that the LINQ to object assembly is referenced
eval.ReferenceAssembly(typeof(Enumerable).Assembly);