dynamic-language-runtime

    8熱度

    4回答

    我正在尋找一種動態添加成員到動態對象的方式。 OK,我想是需要澄清一下...... 當你做到這一點: dynamic foo = new ExpandoObject(); foo.Bar = 42; 的Bar屬性將在運行時動態添加。但是代碼仍然將「靜態」引用到Bar(名稱「Bar」是硬編碼的)......如果我想在運行時添加一個屬性而不知道它在編譯時的名稱怎麼辦? 我知道如何用自定義動態對象

    3熱度

    1回答

    我繼承了一個小腳本語言,我試圖將它移植到DLR,以便管理起來更容易一些。到目前爲止,它一直相當直接。儘管試圖動態調用變量的成員,但我遇到了一個問題。當前的語言運行在.NET上,並使用解析循環和反射來做到這一點,但我希望擺脫這種情況。這裏是腳本語言的例子: string $system1RemoteUri; string $dbconnection = $config.GetDBConnectio

    0熱度

    2回答

    我知道C#4.0中的新「動態」關鍵字有助於與動態.NET語言的交互,並且可以通過使用它而不是反射來幫助剪切代碼。所以用法適用於非常特殊的情況。 但是,我想知道的是,它是否會給C#帶來的其他動態語言(如IronXXX語言)所帶來的所有動態優勢?換句話說,是否可以用動態語言風格在C#中編寫整個應用程序? 如果有可能,是否會被推薦。爲什麼,或者爲什麼不分別? 我是否可以在不切換到其他語言的情況下獲得動態

    1熱度

    1回答

    當我在IronPython中爲構造函數創建帶有命名參數的C#類實例時,它將設置與參數名稱對應的屬性。我希望禁用此行爲,以便可以更好地控制屬性的評估順序。 這可能嗎?

    5熱度

    3回答

    我正在尋找公開特定的.Net類型到IronPython運行時。我可以這樣做: ScriptEngine engine = Python.CreateEngine(); ScriptScope scope = engine.CreateScope(); engine.Runtime.LoadAssembly(typeof(Program).Assembly); // current assemb

    0熱度

    2回答

    我一直在尋找IronPython項目和Orchard CMS項目的源代碼。 IronPython使用名爲Microsoft.Scripting.Hosting.Shell的名稱空間(DLR的一部分)運行。 Orchard項目也在各種接口(IShellContainerFactory,IShellSettings)中間接操作'shell'的概念。 上面提到的任何項目都沒有詳細的文檔,因此如果您想通過

    2熱度

    1回答

    爲什麼與null比較是如此不穩定? 只是代碼。 IronRuby 0.9.4.0 on .NET 2.0.50727.4927 Copyright (c) Microsoft Corporation. All rights reserved. >>> require 'System' => true >>> i = System::Int32.MinValue => -21474836

    3熱度

    1回答

    我一直在努力獲得一個在.NET 3.5中工作的簡單DynamicObject示例。 使用DLR關閉CodePlex上我一直無法弄清楚什麼.NET 3.5等同於以下是最新版本: public class DynamicObjectBag : DynamicObject { private Dictionary<string, object> _properties = new Dicti

    3熱度

    1回答

    我需要指出正確的方向。我已經將一個Iron Python腳本宿主嵌入到一個簡單的C#應用​​程序中,但現在我需要知道在用戶生成的IronPython或IronRuby腳本上鎖定安全性的最佳實踐。 具體來說,防止庫導入的策略是什麼,.NET中沒有辦法在不同的安全上下文中運行代碼塊或線程,例如阻止文件系統訪問?此外,可以將此上下文分配爲內置級別或角色而不是實際用戶? 謝謝! (「:\\ file.tx

    4熱度

    4回答

    我有一個非常簡單的test.rb文件從IronRuby的腳本捕獲標準輸出: puts "Hello World" 我想執行的C#在這個文件中,如: var runtime = Ruby.CreateRuntime(); runtime.ExecuteFile("C:\test.rb"); 如何我可以捕捉到「Hello World」嗎?