c# - 获取类/消息的函数隐藏一些字段并返回消息.Net
问题描述
你好,我有这个消息/类,例如这样
[ProtoContract]
Public class UserMessage
{
public override DateTime MessageTimestamp { get; set; }
public override string MessageId { get; set; }
[ProtoMember(35)]
public string UserName { get; set; }
[ProtoMember(34)]
public string RealName { get; set; }
}
然后当我记录消息或存储它们时,我不希望在RealName
任何地方存储或记录,所以我想要一个像
public UserMessage StripMessage(UserMessage msg){
//hide RealName from message
return msg;
}
所以它是非常基本的功能,但我只是不知道如何做到这一点。我不能[jsonignore]
在课堂上放一个或类似的东西,UserMessage
因为它来自另一个来源,不应该被编辑。所以有一些方法可以打乱/隐藏消息中的字段并返回未隐藏的字段
解决方案
public class UserMessage
{
public override DateTime MessageTimestamp { get; set; }
public override string MessageId { get; set; }
[ProtoMember(35)]
public string UserName { get; set; }
[ProtoMember(34)]
public string RealName { get; set; }
}
public class UserMessageForLog
{
public UserMessageForLog(UserMessage msg)
{
MessageTimestamp = msg.MessageTimestamp;
MessageId = msg.MessageId;
UserName = msg.UserName;
}
public DateTime MessageTimestamp { get; set; }
public string MessageId { get; set; }
public string UserName { get; set; }
}
public LogUserMessage(UserMessageForLog msg)
{
}
推荐阅读
- java - HtmlUnit 在循环中获取表格,但不是第二次通过
- asp.net-mvc-4 - Castle Windsor Register:无法创建组件“X.YService”,因为它需要满足依赖项
- neural-network - 我们可以在 ANN 模型中使用分类变量作为输入吗
- java - `synchronized(obj) {...}` 中的 `obj` 参数的目的是什么?
- scala - Elasticsearch 字段未显示
- oracle - Oracle 重要补丁更新下载
- maven - 我应该将 flyway:migrate 目标绑定到哪个 Maven 阶段?
- php - 一个插件覆盖了我使用functions.php设置的属性值
- javascript - ramda 从基础对象重塑对象结构
- java - 调用 ODOO API 时出现异常