gpt4 book ai didi

c# - 如何在 C# 中为我的应用程序提供等效的 Excel-VBA 环境

转载 作者:行者123 更新时间:2023-11-30 12:59:16 25 4
gpt4 key购买 nike

我想让用户有机会根据我的类层次结构(内存中的对象)做自己的报告。像 VBA 这样的脚本语言:Visual Basic for Application。将在运行时评估的内容。

我希望用户能够根据某些仅标有特定属性的可用受限对象动态创建自己的报告。让用户有可能在他具有与 VBA-Excel 中类似模型的地方创建宏:Application/Workbook/WorkSheet/Range/... 但使用我选择的特定对象。

然后,他就可以使用智能感知并将其自己的功能添加到其应用程序中。

更新:有一件对我来说非常重要的事情。编辑器最好是应用程序本身的一部分,以便脚本了解它应该与之交互的所有环境(命名空间、对象……)。否则,在单独的进程中使用脚本引擎/编辑器会迫使应用程序成为“单实例”应用程序,或者创建一种将脚本挂接到特定运行的应用程序进程的棘手方法。

它是否存在以及如何将其插入 .net 应用程序?

提出了4种解决方案:

  1. IronRuby
  2. CsScript
  3. WinWrap
  4. Windows Scripting Host (WSH)

我还发现:

  1. ScriptCs
  2. RoslynPad
  3. Code Project - Anoop Madhusudanan article: C# as a Scripting Language in Your .NET Applications Using Roslyn

但我想知道哪个可以满足所有需求(或大多数需求):

  1. 具有 Intellisense 的编辑器
  2. 用户可以访问当前正在运行的流程对象模型(应用程序作为全局对象及其所有相关对象通过应用程序属性访问)。可选但非常好:不一定是每个公共(public)属性,只标记具有特定属性的属性。
  3. 交互式环境逐步启用、调试、断点、......
  4. 获得免费再分发许可的编辑器/调试器
  5. 不需要,但最好使用C#语言

实际测试:

  • 我尝试评估 #2,但没有所有模块协同工作的 VS 项目示例(组装起来似乎有点复杂)。
  • 我目前正在评估 #6,它似乎工作正常(我纠正了一个小错误)。它似乎符合大多数观点,但#3。但它似乎最接近我的需求。它还使用 Roslyn,这在我看来是一个积极的方面,因为它是应该始终保持最新状态的 Microsoft 编译器。

我仍在等待看到任何人的任何反馈,无论是其他更好的解决方案还是帮助我做出更好决定的任何建议。

最佳答案

经过一些思考、试验和错误。我的需求变得更加清晰,我对 Roslyn 开发的现状也有了更好的了解。

我意识到 Oleg Shilo(CS-Script 的作者)关于 Roslyn 还没有准备好 (2014-10-21) 来帮助我进行智能感知这一事实是正确的。但我认为它应该会很快发生。我认为值得等待。但它可以将代码编译并运行到我想在其中运行测试的同一个正在运行的应用程序中。

尽管任何其他方法现在可能效果更好。我认为像 RoslynPad 这样的解决方案更接近满足我需求的理想解决方案。大多数其他建议的解决方案对于一般脚本编写来说不错,但对于内部应用程序自己的脚本编写不如 RoslynPad 好……至少根据我的观点。

然后我修复了 RoslynPad 中的一些小问题并将其连接到最新的 AvalonEdit,它还修复了一些其他自动完成问题(但仍然有一些错误)。

我现在得到这样的需求:

  • #1 部分(当 Roslyn 支持并记录它时准备完整)
  • #2 完整
  • #3 否(准备好在 Roslyn 支持并记录它时完成)
  • #4 完整
  • #5 完整

非常感谢所有给我想法、链接和非常好的建议的人。

关于c# - 如何在 C# 中为我的应用程序提供等效的 Excel-VBA 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26406946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com