簡體   English   中英

C#執行變量代碼

[英]C# execute variable code

是否可以從字符串變量執行代碼,例如:
字符串mystring =“ Console.WriteLine(\\” Hi \\“);”; 是否可以執行myst​​ring的內容(打印“ Hi”)?

可以使用System.Reflection.Emit或System.CodeDom命名空間,但這並不是一個好主意,因為沒有機制可以控制哪些命名空間是允許的。 用戶可以構建一個會擦除硬盤驅動器的字符串。

類似eval()的函數是巨大的安全漏洞,應避免使用。 優選的替代方案是DSL(領域專用語言)

是。 在運行時啟動編譯器並傳遞代碼。 它將吐出可執行代碼。 請參閱System.CodeDom命名空間,尤其是System.CodeDom.Compiler

使用代碼DOM

需要使用反射來獲得類似的東西。 C#不是動態的或解釋性的語言,因此請不要開箱即用

http://www.codeproject.com/KB/dotnet/Expr.aspx

如何動態評估C#代碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM