我想讓用戶有機會根據我的類層次結構(內存中的對象)執行自己的報告。像VBA這樣的腳本語言:Visual Basic for Application。一些將在運行時進行評估的東西。如何在C#中爲我的應用程序授予用戶相應的Excel-VBA環境
我希望用戶能夠動態地創建自己的報告,基於一些可用的標記有特定屬性的限制對象。讓用戶有可能在VBA-Excel中有類似模型的地方創建宏:應用程序/工作簿/工作表/範圍/ ...,但用我的特定選定對象代替。
然後,他將能夠使用智能感知並將其自己的功能添加到其應用程序中。
更新:有一些對我來說很重要。編輯器應該最好是應用程序本身的一部分,以便腳本知道它應該與之交互的所有環境(名稱空間,對象等)。否則,在單獨的進程中使用腳本引擎/編輯器會強制應用程序成爲「單實例」應用程序,或者創建一個棘手的方式將腳本掛接到特定的正在運行的應用程序進程。
它是否存在以及如何將它連接到.net應用程序?
4的解決方案已經被提出:
我還發現:
- ScriptCs
- RoslynPad
- Code Project - Anoop Madhusudanan article: C# as a Scripting Language in Your .NET Applications Using Roslyn
- 編輯與智能感知
- 用戶有訪問當前運行的進程對象模型(Application作爲全局及其通過應用程序訪問的所有相關對象rties)。可選但很好擁有:不一定每個公共屬性,只有具有特定屬性的標記屬性。
- 交互式環境中實現分步實施,調試,斷點,... 許可免費再分配
- 編輯器/調試
- 並非必需,但優選使用C#語言
- 我試着評估#2,但沒有VS項目樣本與所有模塊一起工作(這似乎有點複雜的組裝)。
- 我目前評估#6似乎工作正常(我糾正了一個小錯誤)。它似乎適合大多數點,但#3。但它似乎與我的需求最接近。它也使用了Roslyn,這在我看來是一個積極的方面,因爲它是微軟的編譯器,它應該始終是最新的。
但我不知道哪一個能適合所有的需求(或大部分):
實際測試:
我仍然在等待任何人的任何反饋或其他更好的解決方案或任何建議來幫助我做出更好的決定。
特別想要VBA嗎? – Maz 2014-10-16 14:32:18
@馬茲,不,不一定,任何相當的東西都不錯。 – 2014-10-16 14:33:27
我會看看嵌入ironpython。關於這個主題有很多教程,它應該做你想要的東西 – Maz 2014-10-16 14:37:14