跳转到内容

把 .NET 插件带进基岩版服务器

原生 HostingShim 把 CLR 托管进服务端进程;托管核心负责发现、隔离与生命周期。

一份契约

实现 IPlugin。载入、启用、停用与卸载由框架驱动;违反契约的包在运行之前就被拒绝。

隔离

每个插件一个可回收的程序集装载上下文。卸载经过验证,单个插件失败不会拖垮服务端。

一等 Provider

C# 与 F# 源码在装载时 AOT 为 IL;Provider 把 IL 装进 collectible ALC,核心驱动生命周期。预编译程序集由核心内置入口装载。RpcProvider 是例外一等 Provider:官方跨进程桥。

三个载体

同一份托管核心跑在 LeviLamina、Endstone(Windows 与 Linux)与自持态 Linux(BDS 1.21.3)上。

本文档也有English.

RpcProvider 是例外一等 Provider:官方、跨进程,给无法编译为 IL 的插件用。