如何在C#中创建脚本引擎类
本文关键字:脚本 引擎 创建 | 更新日期: 2023-09-27 18:06:22
可能重复:
是否可以从C++应用程序调用C#应用程序?
我正在考虑编写一个概念验证应用程序,该应用程序包含一个运行(执行(.CLI语言(例如C#、VB.Net等(的脚本引擎。
我最初想用C++创建脚本引擎应用程序,但这似乎充满了问题和解决方案。相反,我现在想用C#编写脚本引擎。
我已经勾勒出了一个非常粗略的想法,我想在下面做什么:
代码仍然是伪C++,但希望语义应该很清楚:
class GenericDotNetLangInterpreter
{
public:
Results run(const Arguments& args);
protected:
GenericDotNetLangInterpreter(const std::string &script);
};
class MyInterpreter : private GenericDotNetLangInterpreter
{
public:
MyInterpreter(const LanguageType l);
Results run(const Arguments& args);
}
几个问题:
以前有人做过这种事情吗?有没有一些代码可以作为参考?
在这条路上,我需要注意哪些问题?
不是一个真正的答案,但指出C#和VB.Net没有被解释,而是被编译到IL(类似于Java的字节码(。换句话说,您的API名称和签名可能会更改。您需要调用相关联的编译器,然后执行代码。
有一些.Net语言可以在DLR上运行,但我不清楚如何从本地语言调用它。
托管和非托管应用程序之间的限制比看起来更窄。您的C++应用程序可以链接到mscorelib(基本的.NET支持(。
从那时起,您的C++应用程序可以将您的文本"脚本"编译为.NET字节码并执行它。
这是否合理或是一个好主意取决于你。