.net core 托管.net核心并创建托管实例

.net core 托管.net核心并创建托管实例,.net-core,interop,unmanaged,managed,coreclr,.net Core,Interop,Unmanaged,Managed,Coreclr,我试图在本机应用程序中加载.net核心库,目的是创建托管对象的实例 我遵循了微软的建议,使用hostfxr加载.netcore 3+库 使用NativeHost.vs/DotNetLib示例,我能够调用一个本机静态方法 我希望创建一个托管对象并对其调用方法,理想情况下创建一个类型库,以便处理应用程序的本机部分和托管部分之间的互操作 这是我们在完整的.net框架中所采用的方法,但似乎没有任何类似的方法 mscoree.CLRCreateInstance 与hostfxr 仅建议

我试图在本机应用程序中加载.net核心库,目的是创建托管对象的实例

我遵循了微软的建议,使用hostfxr加载.netcore 3+库

使用NativeHost.vs/DotNetLib示例,我能够调用一个本机静态方法

我希望创建一个托管对象并对其调用方法,理想情况下创建一个类型库,以便处理应用程序的本机部分和托管部分之间的互操作

这是我们在完整的.net框架中所采用的方法,但似乎没有任何类似的方法

mscoree.CLRCreateInstance

与hostfxr

仅建议<.net core 3.0使用CoreClrHost


我遗漏了什么吗?

在这个阶段,我试图做的事情是不可能的。net核心没有“嵌入API”

根据Vitek Karas在这里的评论

load_assembly_和get_函数_指针并不表示为 替换低级别的所谓“嵌入”API—这将 允许您在一个应用程序中使用本机代码中的托管对象/方法 一般方式。它旨在提供一种健壮的方法来初始化 运行时,并获取调用托管代码的方法

我们希望人们使用此功能来制作单个(或 很少)调用托管代码,或者在上面构建自己的“互操作”。 允许创建指向任何 方法是,如果方法的签名不是超简单的,则 无法自定义封送处理。例如,如果该方法 以字符串参数为例,无法指定 编码应暴露于本机代码。。。等等

“嵌入API”允许本机代码具有更大的 控制与被管理者的沟通是我们的职责 考虑未来

我们确实考虑过直接暴露CoCeLR(来自新的)。 但它会在生命周期中产生一些不寻常的问题 管理层。而且在未来,这将是非常棘手的事情 如果运行时实际上是Mono,则以一致的方式执行此操作


在这个阶段,我试图做的是不可能的。net核心没有“嵌入API”

根据Vitek Karas在这里的评论

load_assembly_和get_函数_指针并不表示为 替换低级别的所谓“嵌入”API—这将 允许您在一个应用程序中使用本机代码中的托管对象/方法 一般方式。它旨在提供一种健壮的方法来初始化 运行时,并获取调用托管代码的方法

我们希望人们使用此功能来制作单个(或 很少)调用托管代码,或者在上面构建自己的“互操作”。 允许创建指向任何 方法是,如果方法的签名不是超简单的,则 无法自定义封送处理。例如,如果该方法 以字符串参数为例,无法指定 编码应暴露于本机代码。。。等等

“嵌入API”允许本机代码具有更大的 控制与被管理者的沟通是我们的职责 考虑未来

我们确实考虑过直接暴露CoCeLR(来自新的)。 但它会在生命周期中产生一些不寻常的问题 管理层。而且在未来,这将是非常棘手的事情 如果运行时实际上是Mono,则以一致的方式执行此操作