4

Roslynを使用してC#スクリプトエンジンをアプリケーションに埋め込んでいますが、これまでのところ、問題なくコードを実行できます。たとえば、次のコードを実行できます。

using System;
var str = "Hello Roslyn";
Console.WriteLine(str);

上記のコードスニペットから構文ツリーを構築するときに、コンパイルの問題に直面しています。コンパイラは、メインの名前空間に直接埋め込まれたステートメントについて文句を言います。これは、通常のC#プログラムを作成するときに意味がありますが、私の場合はスクリプトの方法で行っているので意味がありません。

質問: C#スクリプトからエラーのない構文ツリーを構築する方法はありますか?

編集 これは私が構文ツリーを構築するために使用しているコードです。

SyntaxTree tree = SyntaxTree.ParseText(context.SourceCode);
Compilation compilation = Compilation.Create("CSharp", syntaxTrees: new[] {tree}, references: references);

ありがとうございました

4

1 に答える 1

7

通常のコードではなく、スクリプトコードを解析していることを指定する必要があります。

SyntaxTree tree = SyntaxTree.ParseText(source, options: new ParseOptions(kind: SourceCodeKind.Script));
于 2012-11-28T16:56:54.900 に答える