2013-02-08 61 views
1

一些問題,因爲這將是很難解釋的,讓我先用圖:關於執行腳本引擎的

enter image description here

這麼多的理論,但我將如何真正實現這一點?這甚至可能/可行嗎?

  • 我怎麼會真正的腳本加載到對象的ScriptManager的持有:

    浮現在腦海中的一些問題?

  • 如何公開某些功能?我不希望他們對我的程序擁有最終的權力,只有一個域名。
  • 腳本甚至可以知道例如EngineClass?我應該在腳本中使用嗎?這不需要是腳本路徑中的程序集的副本嗎?
  • 我聽說過MEF,這可能嗎?它似乎更適合插件。
  • 我該如何編譯腳本?

我知道你不能回答所有這些,或者爲我實現整個引擎。但是我需要指出做什麼,我很長一段時間一直在關注這個概念。

在此先感謝您的任何答案。

+1

你看過Lua嗎?顯然有一些庫允許你使用.Net的Lua。根據您在腳本中需要的功能,如果它們還沒有C#/ .Net背景,這可能更易於實現,並且更易於用戶使用。 – Jobo

+0

[LuaInterface](http://code.google.com/p/luainterface/),[Lua](http://www.lua.org/)。沒有使用它自己,但afaik它運作良好。 – Jobo

+0

@Lobo感謝您的鏈接。可悲的LuaInterface似乎依賴於VisualC++庫,但我想保持一切跨平臺(在Mono上運行) – xNidhogg

回答

0

經過一些更多的研究,我偶然發現了What is the best scripting language to embed in a C# desktop application?http://blogs.msdn.com/b/abhinaba/archive/2005/11/14/492458.aspx,它似乎做了我想做的一些修改。在我不知道的幾個星期前,我怎麼沒有摔倒。

+0

請注意,自2005年以來發生了很大變化。現在,嵌入和限制其他代碼(如MEF/MAF/CAS/Roslyn/Mono的C#編譯器)的問題有很多解決方案。這是相當多的閱讀:) – Haider