当前位置: 首页 > article >正文

MoonSharp 文档四

目录

10.Platform Accessors(平台访问)

预定义平台访问器的快速浏览

更改平台访问器

实现你自己的平台访问器

自定义平台访问器的某些方面

11.Script options(脚本选项)

局部选项

一个快速覆盖脚本选项的示例

全局选项

12.Debugger integration(调试器集成)

使用可用的调试器之一

使用基于 Visual Studio Code 的调试器

使用基于 Flash 的远程调试器

自定义远程调试器

实现你自己的调试器


MoonSharp 文档一-CSDN博客

MoonSharp 文档二-CSDN博客

MoonSharp 文档三-CSDN博客

MoonSharp 文档五-CSDN博客

10.Platform Accessors(平台访问)

如何改变MoonSharp与操作系统交互的方式

官方文档:MoonSharp

这个教程会比较简短,并且假设你已经完整地学习了有关脚本加载器的教程。

如果你还没有学习,请先回去把脚本加载器的所有内容学习完毕。

平台访问器与脚本加载器非常相似,尽管它们服务于不同的目的。平台访问器旨在提供对操作系统API的访问,以适应标准库或 MoonSharp 的其他附属部分。特别地,io、file和os模块严重依赖于平台访问器,但其他方法也会经过平台访问器,如 print、debug.debug等。

预定义平台访问器的快速浏览

根据你运行的平台,你可以选择以下平台访问器:

•  StandardPlatformAccessor:实现所有需要的方法,访问文件、环境变量等。
•  LimitedPlatformAccessor:非常有限的支持。禁用 io、file 和部分 os 模块。

如果没有重新定义,MoonSharp 默认使用的平台访问器是便携类库构建的LimitedPlatformAccessor,以及其他构建的 StandardPlatformAccessor。

更改平台访问器

更改平台访问器会影响所有脚本,无论是已创建的还是未创建的。因此,一旦脚本已经创建,就绝不应该更改平台访问器。为了本教程的目的,我们还是会这样做,但请不要在实际中这样做。

static void ChangePlatform()
{
	// This prints "function"
	Console.WriteLine(Script.RunString("return type(os.exit);").ToPrintString());

	// Save the old platform
	var oldplatform = Script.GlobalOptions.Platform;

	// Changing platform after a script has been created is not recommended.. do not do it.
	// We are doing it for the purpose of the walkthrough..
	Script.GlobalOptions.Platform = new LimitedPlatformAccessor();

	// This time, this prints "nil"
	Console.WriteLine(Script.RunString("return type(os.exit);").ToPrintString());

	// Restore the old platform
	Script.GlobalOptions.Platform = oldplatform;
}

实现你自己的平台访问器

你可以实现自己的平台访问器来定义某些函数的行为。

与脚本加载器一样,你有两个主要选择:继承PlatformAccessorBase(推荐)或实现IPlatformAccessor。

要根据实际运行的平台做出决策,可以查看PlatformAutoDetector,它执行大量运行时检查来尝试了解它运行在哪个平台上。

自定义平台访问器的某些


http://www.kler.cn/a/580808.html

相关文章:

  • ESP32S3N16R8驱动ST7701S屏幕(vscode+PlatfoemIO)
  • C#程序结构及基本组成说明
  • 【MySQL_06】表的相关操作
  • 2025年渗透测试面试题总结-华顺某信安-安全服务工程师(题目+回答)
  • 1分钟看懂React的那些Hook‘s
  • Python:函数(一)
  • UIToolkit(一)
  • cursor mcp 在windows下配置
  • MySQL 索引技术指南
  • 《Mycat核心技术》第19章:基于MySQL实现读写分离
  • 深度学习双向RNN
  • 从 “12.3” 的崩溃到完美的解决方案:一场类型选择的冒险之旅
  • 计算机导论——CS50
  • 大空间多人互动技术、大空间LBE、VR大空间什么意思?如何实现?
  • MATLAB 控制系统设计与仿真 - 21
  • 启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED
  • leetcode hot100 二叉树
  • Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步
  • 《C#上位机开发从门外到门内》1-2:上位机开发语言与工具、开发环境部署
  • 实现“一塔一档”管理模式需要多种物联网(IoT)技术的支持