.NET Framework提供了几种托管托管运行时的方法。可以使用mscoree.dll的 CorBindToRuntime (https://msdn.microsoft.com/library/ms231419(v=vs.110).aspx)通过GetDefaultDomain / CreateDomain获取AppDomain的句柄,然后加载程序集,实例化对象并调用mscorlib互操作对象'方法
现在声明此方法已过时,但基于 CLRCreateInstance (https://msdn.microsoft.com/library/ms164408(v=vs.110).aspx)的新接口提供了类似的功能。在某些时候,人们可以访问与COM兼容的AppDomain对象,并可以与托管代码进行通信。
但是,CoreCLR(https://www.microsoft.com/net,https://github.com/dotnet/coreclr)缺少mscoree.dll。
中描述了一种允许执行一段CoreCLR托管代码的托管方法http://www.fancy-development.net/hosting-net-core-clr-in-your-own-process
但 ICLRRuntimeHost / ICLRRuntimeHost2 接口不提供任何方式将数据传递给被调用的托管函数,我也无法得到计算结果。因此,该方法仅适用于为副作用调用代码的情况。
在CoreCLR下向托管代码传递数据的方式是什么?