<div style="font-weight: normal;"><div>Hi, </div>
<div> </div>
<div>I have written a DLR hosting application, create ScriptRuntime in another AppDomain, DLR throw exception when execute code. the detail code like follow:</div>
<div> </div>
<div>public class ScriptProxy : MarshalByRefObject, IScriptProxy<br>{<br> private ScriptEngine m_ScriptEngine;<br> private ScriptRuntime m_ScriptRuntime;</div>
<div> public ScriptProxy()<br> {<br> ScriptRuntimeSetup runtimeSetup = new ScriptRuntimeSetup(true);<br> m_ScriptRuntime = ScriptRuntime.Create(runtimeSetup);<br> m_ScriptRuntime.GlobalOptions.DebugMode = true;<br> m_ScriptRuntime.GlobalOptions.DynamicStackTraceSupport = true;</div>
<div> //Default script engine<br> m_ScriptEngine = m_ScriptRuntime.GetEngine("python");<br> }<br>}<br><br>//=======Client code as follow =====================<br></div>
<div>private void Initialize()<br>{<br> Evidence evidence = AppDomain.CurrentDomain.Evidence;<br> AppDomainSetup appSetup = new AppDomainSetup();<br> appSetup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;<br> m_ScriptAppDomain = AppDomain.CreateDomain("ScriptProxy", evidence, appSetup);</div>
<div> m_ScriptAppDomain.Load("ScriptProxy");<br> m_RemoteScript = (IScriptProxy)m_ScriptAppDomain.CreateInstanceAndUnwrap("ScriptProxy", "ZuHong.TestMore.Scripting.ScriptProxy");<br>}<br><br></div>
<div>m_RemoteScript.ExecuteCode(txtScriptSource.Text);</div>
<div> </div>
<div>==========================================</div>
<div>DLR throw exception when execute code: SourceUnit not marked as <span class="identifier">SerializableAttribute.</span></div>
<div> </div>
<div><img src="cid:A349BAF3@D9780F25.5588DC47"></div>
<div style="font-size: 12px; color: rgb(144, 144, 144); font-family: Arial Narrow;">------------------</div>
<div>
<div>Andy Tao[陶祖洪]</div>
<div>祖洪测试自动化 <a href="http://www.zuhong.cn/">http://www.zuhong.cn</a></div>
<div>天是圆的,地是方的,凡事都要有个规矩!</div></div></div>