SuperAPI AI 工具集

spacetimedb-csharp

编程与开发

查看项目

更新于 10-16 08:36

技能介绍

用途:为 SpacetimeDB 构建 C# 服务端模块以及 Unity/C# 客户端,覆盖表定义、Reducer、客户端 SDK 集成与绑定生成。主要能力:表用 partial struct/class 配合 [SpacetimeDB.Table],字段支持主键、自增、唯一、B-tree 索引与默认值;模块为 public static partial class,Reducer 通过 ReducerContext 访问 ctx.Db、ctx.Sender、ctx.Timestamp;支持生命周期 Reducer(Init、ClientConnected、ClientDisconnected)、定时表与 ScheduleAt、自定义 [SpacetimeDB.Type] 类型,以及 Sum Type(partial record 继承 TaggedEnum,元组需带变体名)。数据库访问用 PascalCase,主键用 Find/Update/Delete,索引用 Find 或 Filter,全表用 Iter(),插入自增字段传 0。客户端通过 NuGet 包 SpacetimeDB.ClientSDK 或 Unity 的 git URL 安装,需定期调用 conn.FrameTick() 才能触发回调,且不要在后台线程访问 conn.Db。项目文件必须名为 StdbModule.csproj,目标框架 net8.0、wasi-wasm,并执行 dotnet workload install wasi-experimental。常用命令含 spacetime start、publish(可加 --clear-database -y)、generate 和 logs。限制:C# 尚不支持 procedures,仅能用 reducers;Reducer 必须确定性,不能用文件系统、网络、定时器或 Random,不能 async/await;需 .NET 8 SDK,暂不支持 .NET 9 及以上;可空字段用 T? 而非 Optional<T>;Sum Type 不能用 struct/class;Index 特性需全限定为 [SpacetimeDB.Index.BTree] 以避免与 System.Index 冲突,属性参数不能用集合表达式;Public = true 才让客户端订阅,否则默认仅服务端可见。资料未提供具体收费、价格或性能数据。