C# 作为脚本语言
C# as a scripting language
可能的重复项:
从非托管代码调用托管 .NET 代码的最佳方式
我很想知道我是否可以将 C# 用作托管在 c++ 本机应用程序中的脚本语言。我已经在自己的游戏引擎上工作了 5 年,但我从未接触过它的脚本方面。我喜欢在 Unity 中为游戏中的不同对象编写 C# 脚本的方式。
我做了一些搜索,但我找不到任何实际使用的东西。
请注意,我的问题与 .Net 无关,而是与作为通用语言的 C# 有关。
为了确保这一点,我将声明这一点:我不想从 C# 调用本机 c++。我想要相反的方式。
如果有人能指出我一些资源,我将不胜感激。
是的,您要做的是在您自己的应用程序中托管 CLR。 这是一篇 MSDN 文章,其中介绍了它。
http://msdn.microsoft.com/en-us/magazine/cc301479.aspx
那篇文章的作者也有一本书,涵盖了它的各个方面。 在应用程序中启动并运行 CLR 后,如果您想要真正的脚本,则需要动态编译代码,cirrus 提供了一些有关如何执行此操作的链接。
您还不可避免地需要在 CLR 命名空间中公开主应用程序的某些部分。 否则,您将无法访问主托管应用程序的任何特定功能。
编辑:当我说"真正的脚本"时,我的意思是您在运行时使用扩展名为脚本.cs的文本文件。 事先编译这些内容,然后将.DLL包含在托管应用程序中会更有效,但是您可以两种方式都这样做。
看看 CodeDOM。现在还有 Reflection.Emit 和 Linq.Expressions - 这里有类似的问题;
是否可以动态编译和执行 C# 代码片段?
使用 C# 动态编译代码
编译和运行动态代码,而不生成 EXE?
你可能想看看Rickard Nilsson的CSRepl的来源。它是一个 C# 交互式解释器。它不承载 CLR,因为它是托管的,但创建 C# 脚本环境。
- 是否有用于C++的类似 C 的语法脚本语言解释器?
- 使用C/C++作为脚本语言
- 我为什么要嵌入脚本语言
- C# 作为脚本语言
- 在C++中使用C#作为脚本语言
- 在Qt HTML5应用程序中使用替代脚本语言
- 在C++中使用脚本语言
- C++在编写脚本语言时如何处理类类型
- OCaml可以用作C++的脚本语言吗
- 从编译语言开发人员的角度理解/学习脚本语言
- 使用C++或任何windows脚本语言格式化文本数据
- 我想在C++项目中包含一种脚本语言.Lua vs Bison/Yacc
- 编写简单脚本语言的教程或介绍
- 用脚本语言实现lambdas
- 将脚本语言嵌入游戏引擎中的编程语言的目的是什么?
- 在c++中使用脚本语言在运行时创建新的类/成员
- 球拍作为游戏引擎中的脚本语言
- 编写脚本语言
- 用另一种语言嵌入shell脚本
- 编写语言脚本并与C API接口