2009-06-16 4 views
0

Silverlight DLR을 사용하여 스크립트 가능한 응용 프로그램을 만들려고합니다. 두 줄 이상의 코드가 포함 된 JScript 코드를 실행하면 첫 번째 줄만 실행합니다. 예 : 나는 컴파일 된 SL 응용 프로그램을 С #으로 작성했습니다. 메인 페이지에는 "lblMessage"라는 라벨과 Click 이벤트 핸들러가있는 버튼이 있습니다.SilverlIght 응용 프로그램에서 JScript 실행

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    ScriptRuntime scriptRuntime = ScriptRuntime.Create(); 
    foreach (string name in new string[] { "mscorlib", "System", "System.Windows", "System.Windows.Browser", "System.Net" }) 
    { 
    scriptRuntime.LoadAssembly(scriptRuntime.Host.PlatformAdaptationLayer.LoadAssembly(name)); 
    } 
    ScriptEngine scriptEngine = scriptRuntime.GetEngine("js"); 
    ScriptScope baseScope = scriptEngine.CreateScope(); 
    gsFormManager fm = gsApplicationManager.FormManager; 
    baseScope.SetVariable("lblMessage", lblMessage); 
    string script = "lblMessage.Text = 'First line of code';\r\n" + "lblMessage.Text = 'Second line of code'"; 
    ScriptSource scriptSource = scriptEngine.CreateScriptSourceFromString(script); 
    CompiledCode compiledCode = scriptSource.Compile(); 
    compiledCode.Execute(baseScope); 
} 

실행 후 Label.Text는 "코드 첫 행"문자열과 같습니다.

두 번째 코드 줄을 무시한 이유는 무엇입니까?

감사합니다.

답변

0

두 번째 줄 끝에 ; (세미콜론)을 입력해야 할 수도 있습니다 ...?

+0

나는 이것을 시도하고 samr 결과가있다. 두 번째 줄은 무시되었습니다. string script = "lblMessage.Content = '첫 번째 코드 줄'; \ r \ n"+ "lblMessage.Content = '두 번째 코드 줄; \ r \ n'"; –

관련 문제