应用内脚本支持 .NET 应用程序

     2023-03-15     117

关键词:

【中文标题】应用内脚本支持 .NET 应用程序【英文标题】:In-App Scripting Support .NET Application 【发布时间】:2021-12-24 22:43:51 【问题描述】:

我目前正在评估我的 .NET 应用程序的脚本选项。用户应该能够编写脚本(在应用程序内的专用文本/代码编辑器中)来控制应用程序本身。该应用程序完全用 C# 编写。作为我目前正在评估的脚本语言

LUA 铁蟒

我找到了以下文章 (https://www.cyotek.com/blog/adding-scripting-to-net-applications),它依赖于 JavaScript,这也是一种选择。目前,我不清楚如何提供应用程序中使用的内部对象以及所用脚本的自定义函数。上面的链接依赖于 JINT(.NET 的 Javascript 解释器),它提供了为脚本添加自己的方法和对象的方法:

  protected virtual void InitializeEnvironment()
  
    this.AddFunction("print", new Action<object>(this.WriteLine));
    this.AddFunction("log", new Action<object>(this.WriteLine));
    this.AddFunction("cls", new Action(this.ClearScreen));

    // interactive functions
    this.AddFunction("alert", new Action<object>(this.ShowAlert));
    this.AddFunction("confirm", new Func<object, bool>(this.ShowConfirm));
    this.AddFunction("prompt", new Func<object, object, string>(this.ShowPrompt));
  

我没有找到使用 IronPython 的方法 - 至少文档中没有提到它,并且没有这种方法的示例。也许我在这里完全走错了路 - 任何帮助/提示都会很棒。

【问题讨论】:

第三个选项:使用 CSharpCodeProvider 的 C# 脚本。 你可以用NLua添加Lua脚本 @Egor 是的,我知道,但在这里我遇到了同样的问题。如何添加自己的方法和对象... RegisterTableFunction 【参考方案1】:

对于轻量级的使用 IronPython 可能是一个不错的选择。 您可以在执行范围内添加自定义函数:

Adding static method to IronPython scope

您可能还想在这里查看 AlterNET 工作室:

https://www.alternetsoft.com/products/studio

这是一个商业库,可为以下语言/技术提供应用内脚本/调试:

-C#/Visual Basic,基于 Roslyn

-TypeScript/JavaScript 基于 ClearScript 和 Google 开发者工具

铁蟒

Python,基于调试适配器协议 - 这个仍在开发中。

您可以在这里找到更多信息:

https://www.alternetsoft.com/news/alternet-studio-7-0-highlights

https://www.alternetsoft.com/blog/python-script-debugger-based-on-debug-adapter-protocol

通过所有这些选项,您可以访问在 .NET 应用程序中定义的对象,但它们在脚本执行性能、应用内调试、内存占用等方面各有利弊。

如果您只需要脚本,则不需要商业级解决方案,但如果您还需要在应用程序中进行脚本调试或代码编辑/编写功能,它可能会很有价值。

德米特里

【讨论】:

.net进程内队列channel的入门与应用(代码片段)

本文内容Channel入门Channel应用本文小结最近,博主为FakeRPC增加了WebSocket协议的支持。这意味着,我们可以借助其全双工通信的特性,在一个连接请求内发送多条数据。FakeRPC目前最大的遗憾是,建立在HTTP协议上而不是TCP/IP协议上... 查看详情

.net进程内队列channel的入门与应用(代码片段)

本文内容Channel入门Channel应用本文小结最近,博主为FakeRPC增加了WebSocket协议的支持。这意味着,我们可以借助其全双工通信的特性,在一个连接请求内发送多条数据。FakeRPC目前最大的遗憾是,建立在HTTP协议上而不是TCP/IP协议上... 查看详情

从 Perl 脚本执行 .net 命令行应用程序

】从Perl脚本执行.net命令行应用程序【英文标题】:Executinga.netcommandlineapplicationfromPerlscript【发布时间】:2012-01-2517:06:28【问题描述】:我有一个Perl脚本,它调用在.Net中创建的命令行应用程序。.Net应用程序不喜欢从脚本中调用... 查看详情

.net进程内队列channel的入门与应用(代码片段)

本文内容Channel入门Channel应用本文小结最近,博主为FakeRPC增加了WebSocket协议的支持。这意味着,我们可以借助其全双工通信的特性,在一个连接请求内发送多条数据。FakeRPC目前最大的遗憾是,建立在HTTP协议上而不是TCP/IP协议上... 查看详情

不受支持的国家/地区的应用内结算

...布时间】:2012-04-2414:03:29【问题描述】:我想为我的一个应用程序使用GooglePlay的应用内结算。不过好像用不了。第一个问题是,根据supportedlocationsformerchants,我的国家-土耳其-不在列表中。第二个问题,我的应用在GooglePlay以外... 查看详情

扩展 C# .NET 应用程序 - 是不是构建自定义脚本语言?

】扩展C#.NET应用程序-是不是构建自定义脚本语言?【英文标题】:ExtendingC#.NETapplication-buildacustomscriptinglanguageornot?扩展C#.NET应用程序-是否构建自定义脚本语言?【发布时间】:2010-11-2210:23:38【问题描述】:我需要为我的C#程序构... 查看详情

用于嵌入 C#/.NET 应用程序的脚本语言? [关闭]

】用于嵌入C#/.NET应用程序的脚本语言?[关闭]【英文标题】:ScriptinglanguageforembeddingintoC#/.NETapplications?[closed]【发布时间】:2010-10-0212:23:14【问题描述】:[我能找到的onlysimilarquestion很久以前就得到了回答,并且主要包含对IronPytho... 查看详情

iOS - 在一台设备上支持多个用户帐户的应用中的可更新应用内购买

...用支持多个用户帐户,但用户一次只能登录一个帐户。该应用程序还提供订阅服务(“信用”以可更新的应用内购买的形式)。我无法将应用内 查看详情

使我的 .NET UI 应用程序可编写脚本的最佳选择是啥?

】使我的.NETUI应用程序可编写脚本的最佳选择是啥?【英文标题】:Whatisthebestoptiontomakemy.NETUIapplicationscriptable?使我的.NETUI应用程序可编写脚本的最佳选择是什么?【发布时间】:2011-05-0520:23:55【问题描述】:我有.NET应用程序并... 查看详情

使用最新的 Play 商店“不支持应用内结算版本 3”

...问题描述】:我正在将应用内计费集成到我的Xamarin.Android应用程序中。我使用Google测试产品(android.test.purchased和其他)测试了API,它工作得很好。在 查看详情

Android 是不是支持通过 PayPal 进行应用内支付模式? [复制]

】Android是不是支持通过PayPal进行应用内支付模式?[复制]【英文标题】:DoesAndroidsupportsIn-ApppaymentmodethroughPayPal?[duplicate]Android是否支持通过PayPal进行应用内支付模式?[复制]【发布时间】:2012-05-2419:37:51【问题描述】:可能重复... 查看详情

IIS 中 ASP.NET Core 应用程序内的虚拟目录

】IIS中ASP.NETCore应用程序内的虚拟目录【英文标题】:VirtualdirectoryinsideofASP.NETCoreappinIIS【发布时间】:2016-03-1608:17:17【问题描述】:我们有一个使用ASP.NETCore1.0RC1并托管在IIS上的应用程序。它工作正常。现在我们有了静态内容,... 查看详情

在 Android 中实现应用内购买?

】在Android中实现应用内购买?【英文标题】:ImplementingInApppurchasesinAndroid?【发布时间】:2011-01-0215:17:07【问题描述】:编辑:Android现在支持in-appbilling!原问题:Android似乎暂时不会原生支持应用内购买,到时可能会有庞大的用... 查看详情

.NET Core 是不是支持异步控制台应用程序?

】.NETCore是不是支持异步控制台应用程序?【英文标题】:Areasyncconsoleapplicationssupportedin.NETCore?.NETCore是否支持异步控制台应用程序?【发布时间】:2016-11-0201:03:48【问题描述】:CoreCLR在某个时间点支持异步主入口点。见http://blog... 查看详情

支持所有移动平台和 .net Web 应用程序的聊天功能框架

】支持所有移动平台和.netWeb应用程序的聊天功能框架【英文标题】:frameworkforchattingfunctionalitythatsupportsallmobileplatformsand.netwebapplication【发布时间】:2011-11-1903:53:40【问题描述】:我们的应用程序是与移动应用程序集成的网络。... 查看详情

在 iTunesConnect 上添加游戏中心支持破坏了我的应用内购买

】在iTunesConnect上添加游戏中心支持破坏了我的应用内购买【英文标题】:AddingGameCenterSupportoniTunesConnectBrokeMyInAppPurchasing【发布时间】:2013-07-0906:39:08【问题描述】:我有一个运行良好的应用购买系统,一切都很顺利。但是,在... 查看详情

如何让我的 .NET 应用程序支持不同的语言

】如何让我的.NET应用程序支持不同的语言【英文标题】:Howtomakemy.NETappsupportdifferentlanguages【发布时间】:2008-09-1804:37:52【问题描述】:我正在编写的应用程序即将完成,我希望说不同语言的人使用它。我不知道从哪里开始,就... 查看详情

bash脚本返回值应用(代码片段)

bash脚本返回值应用应该说bash脚本对于linux系统来说具有举足轻重的意义。这里不做展开,也不做bash脚本介绍。更多的是做一个例子,应用了bash脚本的以下特性:输入参数函数定义调用可执行命令脚本递归条件判断脚... 查看详情