Files
serein-flow/Serein.Library.MyGenerator/Attribute.cs
fengjiayi 8dc7f5dd9b 调整了Library文件结构;
源代码生成新增了参数验证方法;
修改了ParamterDetails的定义
2025-07-29 18:36:43 +08:00

96 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Serein.Library
{
/// <summary>
/// 通过枚举来区分该怎么生成代码
/// </summary>
public enum NodeValuePath
{
/// <summary>
/// 默认值
/// </summary>
None,
/// <summary>
/// 节点本身
/// </summary>
Node,
/// <summary>
/// 节点对应的方法
/// </summary>
Method,
/// <summary>
/// 节点方法对应的入参
/// </summary>
Parameter,
/// <summary>
/// 节点的调试设置
/// </summary>
DebugSetting,
}
/// <summary>
/// 标识一个类中的某些字段需要生成相应代码
/// </summary>
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public sealed class NodePropertyAttribute : Attribute
{
/// <summary>
/// <para>属性路径</para>
/// <para>CustomNode : 自定义节点</para>
/// </summary>
public NodeValuePath ValuePath = NodeValuePath.None;
}
/// <summary>
/// 自动生成环境的属性
/// </summary>
[AttributeUsage(AttributeTargets.Field, Inherited = true)]
public sealed class PropertyInfoAttribute : Attribute
{
/// <summary>
/// 是否通知远程环境(如果在远程环境下)
/// </summary>
public bool IsNotification = false;
/// <summary>
/// 是否使用Console.WriteLine打印
/// </summary>
public bool IsPrint = false;
/// <summary>
/// 是否禁止参数进行修改(初始化后不能再通过 Setter 修改)
/// </summary>
public bool IsProtection = false;
/// <summary>
/// 是否需要验证参数
/// </summary>
public bool IsVerify = false;
/*
/// <summary>
/// 自定义代码(属性变更前)
/// </summary>
[Obsolete("此属性已经过时,可能在下一个版本中移除", false)]
public string CustomCodeAtStart = null;
/// <summary>
/// 自定义代码(属性变更后)
/// </summary>
[Obsolete("此属性已经过时,可能在下一个版本中移除", false)]
public string CustomCodeAtEnd = null;*/
}
}