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,它执行大量运行时检查来尝试了解它运行在哪个平台上。