初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
|
||||
namespace PCL.Core.App.Configuration;
|
||||
|
||||
#pragma warning disable CS9113 // Parameter is unread.
|
||||
|
||||
/// <summary>
|
||||
/// 标记一个 partial 属性,以添加对应配置项并自动生成访问器。
|
||||
/// </summary>
|
||||
/// <param name="key">配置键</param>
|
||||
/// <param name="defaultValue">默认值</param>
|
||||
/// <param name="source">配置来源</param>
|
||||
/// <typeparam name="TValue">值类型</typeparam>
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public sealed class ConfigItemAttribute<TValue>(string key, TValue? defaultValue, ConfigSource source = default) : Attribute;
|
||||
|
||||
/// <summary>
|
||||
/// 标记一个 partial 属性,以添加对应配置项并自动生成访问器。
|
||||
/// <p>注意:默认值将调用指定类型的无参构造器来获取,以解决 C# attribute 在 2025 年仍然不支持隔壁 JVM 在 2015
|
||||
/// 年就支持的极其先进的自定义类型参数的问题。因此,值的类型必须有公开的无参构造器,否则运行时将会抛出异常。</p>
|
||||
/// </summary>
|
||||
/// <param name="key">配置键</param>
|
||||
/// <param name="source">配置来源</param>
|
||||
/// <typeparam name="TValue">值类型</typeparam>
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public sealed class AnyConfigItemAttribute<TValue>(string key, ConfigSource source = default) : Attribute;
|
||||
|
||||
/// <summary>
|
||||
/// 标记一个 partial 类为配置组,以自动实现 <see cref="IConfigScope"/> 并生成对应的作用域检查方法。
|
||||
/// </summary>
|
||||
/// <param name="name">组名,需符合 C# 标识符规范</param>
|
||||
/// <param name="source">组级别的默认配置来源</param>
|
||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||
public sealed class ConfigGroupAttribute(string name, ConfigSource source = default) : Attribute;
|
||||
|
||||
/// <summary>
|
||||
/// 标记一个类型为 <see cref="ConfigEventRegistry"/> 的 public static 属性,以注册配置项事件。
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public sealed class RegisterConfigEventAttribute : Attribute;
|
||||
Reference in New Issue
Block a user