2010-11-23 21 views
2

demo-repl.zipファイルをMiguel de Icaza's web siteからダウンロードしました。Mono.CSharp.dllに問題がありますか何かがありません

私は特定のプログラムを構築しようとしていましたが、すべてが失敗しています。私は単純なコンソールアプリケーションです。

ケース1:条件に基づいて名前を印刷します。これはよくに

static void Main(string[] args) 
{ 
    Evaluator.Run("using System;"); 
    Evaluator.Run("using System.Linq;"); 
    Evaluator.Run("using System.Collections.Generic;"); 

    string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else} ;");   
    dynamicQuery += ReplaceQuotes("foreach(string name in names)"); 
    dynamicQuery += ReplaceQuotes("if(name.Contains('name'))");    
    dynamicQuery += "Console.WriteLine(name);"; 
    Evaluator.Run(dynamicQuery); 

    Console.ReadLine(); 
} 

private static string ReplaceQuotes(string str) 
{    
      return str.Replace("'", "\""); 
} 
} 

ケース2の作品:LINQと同じことをしようとするとされ、実行時に

string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else'} ;"); 
dynamicQuery += ReplaceQuotes("var result = from name in names where name.Contains('name') select name;"); 
dynamicQuery += ReplaceQuotes("foreach(string name in result) Console.WriteLine(name);"); 

エラーを失敗し

{interactive}(1,109): error CS1935: An implementation of `Where' query expressio 
n pattern could not be found. Are you missing `System.Linq' using directive or ` 
System.Core.dll' assembly reference? 
{interactive}(1,149): error CS1579: foreach statement cannot operate on variable 
s of type `object' because it does not contain a definition for `GetEnumerator' 
or is not accessible 

ケース3:ラムダと同じことをしよう

string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else'} ;"); 
dynamicQuery += ReplaceQuotes("names.Where(i => i.Contains('name')).ToList().ForEach(i => Console.WriteLine(i));"); 

この時エラーは

{interactive}(1,83): error CS1061: Type `System.Collections.Generic.List<string> 
' does not contain a definition for `Where' and no extension method `Where' of t 
ype `System.Collections.Generic.List<string>' could be found (are you missing a 
using directive or an assembly reference?) 

ている私は、ネットで検索し、人々がSystem.Coreを含めるように求め、適切な名前空間をインポートしていることがわかりました。

私はすでに、これらの名前空間

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Mono.CSharp; 

はその後、どこで、なぜそれが何が間違っていますか?

答えて

0

がtrueにローカルSystem.Coreへの参照と設定のコピーを追加します。

おかげ

+0

同じエラーが発生しました –

+0

私に電子メールを送ったら、私が持っているコードを送って、すべてを確認できるようにします。 –

+0

jeff dot nevins at gmailドットコム。私は個人的にこの同じシナリオで成功しました。 (BTW、Mono.CSharpプロジェクトの最新版を入手してコンパイルすれば、おそらくこの問題も緩和されます)。以下を参照してください:http://www.mono-project.com/CSharp_Compiler(MCSの入手を参照) – Jeff

2

は(System.Core -r)をプロジェクトにSystem.Coreへの参照を追加するか、コマンドラインをコンパイルします。

+0

dotnetでプロジェクトを作成するたびに、system.core参照がデフォルトで追加されます。 –

+0

System.Core参照コピーローカルをtrueに設定します。 – Jeff

+0

それを思い出して、同じエラーが発生しました –

関連する問題