C# 为什么我不能用Mono';谁是评估者?
我试图在MS.NET框架中使用Mono项目中的C#Evaluator。简单表达式编译运行良好。例如: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); //
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);