Как сделать Csharpcompilation, уважение обеспечивало призывы?C#

Место общения программистов C#
Ответить
Anonymous
 Как сделать Csharpcompilation, уважение обеспечивало призывы?

Сообщение Anonymous »

Я использую класс csharpcompilation для составления синтаксиса , где корень - это объявление класса. Я перехожу к конструктору A CsharpCompilationOptions , который содержит мои использующие операторы. Однако, пытаясь получить доступ к классу, который определяется в одном из использующих s, я перехожу к объекту «Параметры», я получаю ошибку, говоря, что он не существует в текущем контексте.
Я явно делаю что -то не так. Кто -нибудь знает, какого списка упущений, когда он передается в класс csharpcompilationoptions ?
Это код:
public static void TestMethod()
{
string source = @"public class Test
{
public static void TestMethod()
{
string str = Directory.GetCurrentDirectory();
}
}";
SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText(source);

List usings = new List()
{
"System.IO", "System"
};
List references = new List()
{
new MetadataFileReference(typeof(object).Assembly.Location),
};

//adding the usings this way also produces the same error
CompilationUnitSyntax root = (CompilationUnitSyntax)syntaxTree.GetRoot();
root = root.AddUsings(usings.Select(u => SyntaxFactory.UsingDirective(SyntaxFactory.IdentifierName(u))).ToArray());
syntaxTree = CSharpSyntaxTree.Create(root);

CSharpCompilationOptions options = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, usings: usings);
CSharpCompilation compilation = CSharpCompilation.Create("output", new[] { syntaxTree }, references, options);

using (MemoryStream stream = new MemoryStream())
{
EmitResult result = compilation.Emit(stream);

if (result.Success)
{
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/246 ... ded-usings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»