2010-07-26 63 views
4

我想將鐵紅寶石嵌入我創建的泥中,出於某種原因,我無法找到正確的示例開始使用。如何將紅寶石嵌入到c#程序中?

我想要做的就是創建一個遊戲,其中'你'玩家將使用紅寶石來編程機器人,然後我將在c#中將代碼進行交錯並使機器人按照你的意願去做。另外,我想讓代碼可以像鐵紅寶石代碼一樣被解析爲字符串,然後我將用它來控制機器人。

我知道dlr和clr是兩個不同的東西,但找不到樣本。實際的遊戲是一個經典的telnet服務器,我從頭開始用C#編碼,並通過嚴格的telnet協議進行連接。

它可以在這裏找到:pttmud.the-simmons.net:4243通過telnet客戶端,它應該工作。

回答

0

不完全是紅寶石,下面的是什麼,我爲IronPython的(確保組件引用在前):

 runtime = IronPython.Hosting.Python.CreateRuntime(); 
    } 

    public void Run(string script, params object[] variables) 
    { 
     var scriptSource = runtime.GetEngineByFileExtension("py").CreateScriptSourceFromString(script, SourceCodeKind.Statements); 
     var scope = runtime.GetEngineByFileExtension("py").CreateScope(); 

     foreach (var variable in variables) 
      foreach (var property in variable.GetType().GetProperties()) 
       if (property.CanRead) 
        scope.SetVariable(property.Name, property.GetValue(variable, null)); 

     scriptSource.Execute(scope); 

這裏最重要的元素是腳本引擎。你可以通過不同的選項來請求它(在我的情況下是擴展名),並從內存或光盤源創建腳本。

也可以共享變量,這也會顯示出來。

我認爲現在在C#4.0中有一個更好的方法,因爲C#本身成爲一種動態編程語言。