ShrinkDataSaver.Integration.App

ShrinkDataSaver.Integration.AppShrinkDataSaverShrinkApp.Core 的桥接层。它的职责不是重新实现存档系统,而是把 ShrinkDataSaver 接到统一宿主链里,让项目在接入 ShrinkApp 时由宿主接管初始化顺序。

Godot 和普通 .NET 项目安装 ShrinkSDK.DataSaver.Integration.App;可打包源码位于 DotNet~

当前能力

  • 提供原生 ShrinkDataSaverAppComponent,发布 shrink.service.datasaver
  • 在组件激活阶段调用 ShrinkDataSaverRuntime.Initialize()
  • ContextLoader 下向 ShrinkApp.Services 注册可逆的 ShrinkDataSaverService 门面
  • 区分 IShrinkDataSaverReaderIShrinkDataSaverWriter;默认上下文取得完整写能力
  • 支持以 ShrinkDataSaverAccess.MetadataKey = ShrinkDataSaverAccess.ReadOnly 的 intercept 向派生上下文只暴露读取能力,写接口和具体服务请求会被明确拒绝
  • ShrinkDataSaverAppInstaller 仅保留给 ClassicHost 兼容路径,已标记过时
  • 保留 ShrinkDataSaverBootstrap 的旧用法兼容;若宿主已接管,旧 bootstrap 会自动退出

只读上下文

var communityContext = ctx.Intercept(
    ShrinkDataSaverAppComponent.ServiceKey,
    new Dictionary<string, object?>
    {
        [ShrinkDataSaverAccess.MetadataKey] = ShrinkDataSaverAccess.ReadOnly
    });

var reader = communityContext.Get<IShrinkDataSaverReader>(
    ShrinkDataSaverAppComponent.ServiceKey);

这是服务能力的最小化暴露:只约束通过 ShrinkCtx.Get 解析该键的调用方。它不会限制代码绕过上下文后直接访问静态 API,也不构成不可信模组沙箱。

S
Description
ShrinkSDK Unity UPM package.
Readme
64 KiB
Languages
C# 100%