我在這裏學到了stackoverflow,你可以很容易地實現Win窗體的c#和Web瀏覽器控件中加載的javascript之間的雙向訪問。那麼讓我問一下,是否可以使用任何免費的C#組件在C#和IronRuby之間進行類似的雙向訪問?儘管我在.net平臺上搜索瞭如何在兩種語言之間進行雙向訪問,但其中的任何一種都不會像我先描述的那樣帶來同樣的簡單性。有沒有免費的C#組件類來提供C#代碼從文件加載IronRuby代碼的方式?
回答
@svick是對的,但我只想說明一個數據從C#流向IronRuby並返回的例子。
var engine = Ruby.CreateEngine();
engine.ExecuteFile("../../test.rb");
dynamic ruby = engine.Runtime.Globals;
dynamic hello = [email protected]("Hello from Ruby!");
hello.set_text(textBox1);
和test.rb
class Hello
def initialize text
@text = text
end
def set_text text_box
text_box.Text = @text
end
end
PS的Ruby代碼。在從http://ironruby.net/download/安裝IronRuby後,出於某種原因,我只能在C:\ WINDOWS \ Microsoft.NET \ assembly \ GAC_MSIL \ DS中找到IronRuby.dll,IronRuby.Libraries.dll和Microsoft.Scripting.dll。
非常感謝。該代碼在IronRuby 1.0中運行良好。我將檢查IronRuby中哪些C#類可以訪問的對象。 – 2012-03-28 14:48:58
整個.Net可以從IronRuby訪問,你不需要任何C#代碼來使用它們。 – svick 2012-03-28 15:09:25
IronRuby庫可以讓你做到這一點。剛纔提到的IronRuby.dll和IronRuby.Libraries.dll組件,添加using IronRuby;
然後你可以這樣做:
var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(fileName);
然後,您可以查詢scope
對於某些變量,或者獲取所有變量的列表。
非常感謝。這兩個答案在IronRuby 1.0中效果很好。 – 2012-03-28 14:37:57
- 1. Windows有沒有免費的C測試代碼覆蓋工具?
- 2. C#的PictureBox沒有加載,在代碼
- 3. 什麼是C#代碼覆蓋最有效的(免費提供的)工具?
- 4. 代碼我從來沒有在C++ 11
- 5. C#的免費或開放源代碼圖組件?
- 6. 有沒有可用的Visual Studio 2013的免費插件來調試Javascript代碼?
- 7. 免費的C++代碼示例
- 8. 從文件C代碼
- 9. 有沒有簡寫的方式來寫Java代碼的JavaScript代碼「a ||」文本?
- 10. C++ std :: bad_alloc加載190萬行文件的浮點值 - 提供的源代碼
- 11. 你用什麼(免費)來格式化C#代碼?
- 12. 來自文件的C#調用代碼
- 13. XmlDocument類無法加載包含C#代碼節點的文件
- 14. 將C代碼文件合併爲一個C代碼文件
- 15. 有沒有加密c#源代碼的方法?
- 16. CodeIgniter:Librariy類沒有加載此代碼
- 17. 提供沒有服務器端代碼的文件下載網頁
- 18. 有沒有附加組件來獲得更好的代碼格式?
- 19. 爲C源代碼文件提供圖形的工具
- 20. 全局數組在添加到C代碼中的頭文件時沒有'type'
- 21. 有關在C中組織代碼文件的最佳文章
- 22. 加載在RAM中的C#類代碼?
- 23. 有沒有將簡單的Haxe代碼轉換爲C/C++代碼文件的算法?
- 24. 有沒有辦法改變的方式VIM自動格式C,C++代碼
- 25. 轉換C代碼組件
- 26. C#全球組件代碼
- 27. 談話的exe文件從C#代碼
- 28. 有沒有辦法在C++代碼中調用.jar文件?
- 29. 有沒有在Visual Studio的C++的任何代碼提供商2012
- 30. 由C代碼提取RAR文件
@oleksii非常感謝。您的示例可能意味着我不需要額外的組件來執行我想要的操作。它幫助我爲IronRuby搜索相似的樣本。 – 2012-03-28 07:43:37
是的,有幾個接口(可能是幾種語言的默認實現),允許從C#運行其他語言。如果沒有允許運行Iron Ruby的默認組件,可能會有獨立的庫實現接口並允許運行Iron Ruby,如果您發現不要忘記在此發佈答案。 – oleksii 2012-03-28 07:50:36
@oleksii,什麼?我認爲你不能在沒有CLR的情況下毀掉IronRuby *。這就是IronRuby而不是普通的Ruby的一點。 – svick 2012-03-28 07:58:37