using Dpz.Core.Entity.Base;
using Dpz.Core.Entity.Base.Image;
namespace Dpz.Core.Public.ViewModel.Messages;
/// <summary>
/// 新闻文章消息
/// 约定路由:
/// - Exchange: dpz.news.exchange
/// - Queue: dpz.news.article.queue
/// - RoutingKey: news.article.#
/// </summary>
public class NewsArticleMessage : MessageBase
{
/// <summary>
/// 文章标题
/// </summary>
public required string Title { get; set; }
/// <summary>
/// 文章内容(Markdown格式)
/// </summary>
public required string Markdown { get; set; }
/// <summary>
/// 文章简介
/// </summary>
public string? Introduction { get; set; }
/// <summary>
/// 来源URL
/// </summary>
public required string From { get; set; }
/// <summary>
/// 发布时间
/// </summary>
public required DateTime PublishTime { get; set; } = DateTime.Now;
/// <summary>
/// 文章标签
/// </summary>
public List<string> Tags { get; set; } = [];
/// <summary>
/// 作者信息
/// </summary>
public required VmUserInfo Author { get; set; }
/// <summary>
/// 广告权重(0-1之间)
/// </summary>
public double AdWeight { get; set; }
/// <summary>
/// 主图片元信息
/// </summary>
public ImageMetadata? MainImageMetadata { get; set; }
/// <summary>
/// 文章相关图片的元信息
/// </summary>
public List<ImageMetadata> Images { get; set; } = [];
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
代码解释
这是一个 C# 消息类定义,用于在消息队列系统中传递新闻文章数据。
主要组成部分:
1. 命名空间和引用
using Dpz.Core.Entity.Base;
using Dpz.Core.Entity.Base.Image;
namespace Dpz.Core.Public.ViewModel.Messages;
- 引入了基础实体类和图片相关的类
- 定义在消息视图模型的命名空间下
2. 类定义
public class NewsArticleMessage : MessageBase
- 继承自
MessageBase,表明这是一个消息基类 - 用于在系统间传递新闻文章信息
3. 消息队列路由约定(文档注释)
- Exchange: dpz.news.exchange(交换机名称)
- Queue: dpz.news.article.queue(队列名称)
- RoutingKey: news.article.#(路由键模式)
这是 RabbitMQ 或类似消息队列的配置约定。
4. 属性说明
| 属性 | 类型 | 说明 | 特点 |
|---|---|---|---|
Title | string | 文章标题 | 必填(required) |
Markdown | string | 文章内容(Markdown格式) | 必填 |
Introduction | string? | 文章简介 | 可空 |
From | string | 来源URL | 必填 |
PublishTime | DateTime | 发布时间 | 必填,默认当前时间 |
Tags | List<string> | 文章标签集合 | 默认空列表 |
Author | VmUserInfo | 作者信息对象 | 必填 |
AdWeight | double | 广告权重 | 范围0-1 |
MainImageMetadata | ImageMetadata? | 主图片元信息 | 可空 |
Images | List<ImageMetadata> | 文章相关图片列表 | 默认空列表 |
使用场景
这个类主要用于:
- 微服务之间传递新闻文章数据
- 通过消息队列异步处理文章发布
- 解耦文章创建和文章处理逻辑
- 支持分布式系统中的事件驱动架构
AI 正在分析代码…
评论加载中...