我想创建一些游戏引擎,我希望将C#代码用于此脚本引擎。
我听说C#代码可以通过Roslyn动态编译/加载,如果代码可以引用主机对象,我会很好奇。
让我解释一下。主机应用程序具有这些方法并加载外部代码:
(same namespace as host application)
...
MainApp.DoSomething(); // Is it possible?
...
并且加载的代码具有以下行为:
{{1}}
答案 0 :(得分:2)
是的,有可能。如果使用对宿主应用程序集的引用编译动态加载的代码,它可以使用应用程序中的 public
类型和成员,就像应用程序是普通库一样。