我想在.Net中構建一個文檔程序集應用程序,它將允許將規則和條件嵌入到文檔片段中,可能使用某種腳本語言(並且我並不真正想要發明我自己的腳本語言)在PowerShell和C#之間共享變量
我需要c#代碼調用腳本語言的能力,反之亦然,但重要的是我也希望他們能夠通過引用來共享任意數據結構(不僅僅是傳遞一對的字符串前後移動)
我可以使用PowerShell來做到這一點,還是我需要使用DLP語言,比如IronPython?那麼,還有使用DLR語言的其他優點,這意味着我應該使用DLR嗎?
安迪
我想在.Net中構建一個文檔程序集應用程序,它將允許將規則和條件嵌入到文檔片段中,可能使用某種腳本語言(並且我並不真正想要發明我自己的腳本語言)在PowerShell和C#之間共享變量
我需要c#代碼調用腳本語言的能力,反之亦然,但重要的是我也希望他們能夠通過引用來共享任意數據結構(不僅僅是傳遞一對的字符串前後移動)
我可以使用PowerShell來做到這一點,還是我需要使用DLP語言,比如IronPython?那麼,還有使用DLR語言的其他優點,這意味着我應該使用DLR嗎?
安迪
Powershell的可實例化並使用C#(或任何.NET)對象就好了。我從來沒有試過讓C#代碼調用powershell命令,但如果它不能,我會感到驚訝。也就是說,DLR路線也不錯,實際上Ayende的DSL書籍http://www.amazon.com/DSLs-Boo-Domain-Specific-Languages/dp/1933988606/ref=sr_1_1?ie=UTF8&qid=1308063119&sr=8-1中有一些例子可能對你有用(即使你最終不使用Boo,這是一個很好的閱讀)。
我認爲this article正是你正在尋找的(對於Powershell,無論如何)。
使用DLR語言可能會使您執行的代碼位稍微靠近家。根據上面的文章,在.NET應用程序中調用Powershell將在新線程上執行。
在任何情況下,我都會對執行任何腳本語言的隨機位持謹慎態度,而不必定義允許的命令的子集並驗證輸入是否與此相反。
有關於它的完整源代碼的任何解決方案? – Kiquenet 2012-05-29 12:35:55