런타임시 C# 코드를 실행하려면 Roslyn을 사용하고 있습니다.Roslyn을 사용하여 외부 파일에서 코드 실행
먼저 내가 (잘 작동)이 코드를 시도 : 그 후
engine.Execute(@"System.Console.WriteLine(""Hello World"");");
을, 나는 텍스트 파일에서 코드를 실행하고 싶었다, 그래서 나는이 한 :
string line;
System.IO.StreamReader file = new System.IO.StreamReader("test.txt");
while ((line = file.ReadLine()) != null)
{
engine.Execute(line);
}
나는 복사를 test.txt라는 외부 파일에서 이전에 사용한 문자열.
코드 를 compliling @"System.Console.Write(""Hello World"");"
내가없는 뭔가 오류를 얻을 :
그래서 내 TEST.TXT은 다음 줄이 포함되어 있습니다.
그래서 알아 냈습니다. 그냥 백 슬래시였습니다.
그리고
이에 대한 코드 변경 :이 코드를 실행하면 이제string line;
System.IO.StreamReader file = new System.IO.StreamReader("test.txt");
while ((line = file.ReadLine()) != null)
{
string toto = line;
string titi = toto.Replace(@"\\", @"");
engine.Execute(toto);
}
을 아무것도 (오류)를 발생하지 않습니다.
toto : "@\"System.Console.Write(\"\"Hello World\"\");\""
titi : "@\"System.Console.Write(\"\"Hello World\"\");\""
정상인가요 : 나는 변수의 내용을 검사 할 때
는, 나는이 얻을! 일반적으로 baskslash는 제거해야하지만 그렇지 않은 경우입니다. 문제 내가 코드 로슬린에 패스포트 정확한 문자열을 유지하기 위해, 그래서 변화와 같은 답변을 파일의 문자열을하지 않는 것이 좋습니다 원하는
EDIT
에게 무엇
. 다른 솔루션을 제발!
이 코드를 파일 'System.Console.Write ("Hello World");'에 넣어보십시오. 잘 작동해야합니다. –
무엇을 의미합니까? 나는 그것에 대해 결코 들었다! –
파일에서 문자열을 이스케이프 할 필요가 없습니다. StreamReader가 대신 해줍니다. 내 편집 된 댓글처럼 입력하십시오. –