using System.ComponentModel.DataAnnotations;
using Dpz.Core.Entity.Base.Image;
namespace Dpz.Core.Public.ViewModel.Request;
/// <summary>
/// 文章创建
/// </summary>
public class CreateArticleRequest
{
/// <summary>
/// 标题
/// </summary>
[Required]
public required string Title { get; set; }
/// <summary>
/// 文章内容 Markdown
/// </summary>
[Required]
public required string Markdown { get; set; }
/// <summary>
/// 标签
/// </summary>
[Required]
public List<string> Tags { get; set; } = [];
/// <summary>
/// 简介
/// </summary>
[Required]
public string? Introduction { get; set; }
/// <summary>
/// 来源
/// </summary>
public string? From { get; set; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime? PublishTime { get; set; }
/// <summary>
/// 分类
/// </summary>
public List<string> Categories { get; set; } = [];
/// <summary>
/// 广告权重
/// </summary>
public double AdWeight { get; set; }
/// <summary>
/// 主图片元信息
/// </summary>
public ImageMetadata? MainImageMetadata { get; set; }
/// <summary>
/// 文章相关图片的元信息
/// </summary>
public List<ImageMetadata> Images { get; set; } = [];
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
代码解释
这是一个 C# 的数据传输对象(DTO)类,用于处理创建文章的请求数据。以下是详细解释:
命名空间引用
System.ComponentModel.DataAnnotations- 提供数据验证特性Dpz.Core.Entity.Base.Image- 自定义的图片元数据实体命名空间
类定义:CreateArticleRequest
这是一个用于接收创建文章请求的视图模型类,包含以下属性:
必填字段(带 [Required] 特性)
Title (string)
- 文章标题
required关键字确保在对象初始化时必须赋值
Markdown (string)
- 文章内容,使用 Markdown 格式
- 必填字段
Tags (List
) - 文章标签列表
- 默认初始化为空列表
[]
Introduction (string?)
- 文章简介
- 可空类型(
?),虽然标记为 Required,但允许 null 值
可选字段
From (string?)
- 文章来源
- 可空字段
PublishTime (DateTime?)
- 发布时间
- 可空,如果不指定可能使用默认值
Categories (List
) - 文章分类列表
- 默认初始化为空列表
AdWeight (double)
- 广告权重
- 用于控制广告展示的权重值
MainImageMetadata (ImageMetadata?)
- 主图片的元信息
- 可空,可能包含图片尺寸、路径等信息
Images (List
) - 文章相关图片的元信息列表
- 默认初始化为空列表
设计特点
- 使用了 C# 11+ 的
required修饰符确保关键属性必须初始化 - 使用集合表达式
[]进行列表初始化(C# 12 特性) - 采用数据注解进行验证
- 结构清晰,适合 Web API 请求绑定和验证
AI 正在分析代码…
评论加载中...