动态加载C#代码可以使用主机应用程序的对象吗?

时间:2017-04-22 08:23:01

标签: c# roslyn

我想创建一些游戏引擎,我希望将C#代码用于此脚本引擎。

我听说C#代码可以通过Roslyn动态编译/加载,如果代码可以引用主机对象,我会很好奇。

让我解释一下。主机应用程序具有这些方法并加载外部代码:

(same namespace as host application)
...
MainApp.DoSomething(); // Is it possible?
...

并且加载的代码具有以下行为:

{{1}}

1 个答案:

答案 0 :(得分:2)

是的,有可能。如果使用对宿主应用程序集的引用编译动态加载的代码,它可以使用应用程序中的 public 类型和成员,就像应用程序是普通库一样。