【问题标题】:Function to take class/message hide some fields and return message .Net获取类/消息的函数隐藏一些字段并返回消息.Net
【发布时间】:2019-09-15 17:46:44
【问题描述】:

你好,我有这个消息/类,例如这样

[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 类,因为它来自另一个来源,不应该被编辑。所以有一些方法可以打乱/隐藏消息中的字段并返回未隐藏的字段

【问题讨论】:

    标签: c# asp.net-core scramble


    【解决方案1】:
       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)
        {
    
    
        }
    

    【讨论】:

    • 如果我可以触摸 UserMessage 类,但它来自 nuget 包,所以我不能向它添加任何接口或任何东西。我需要与那个班级分开处理这一切
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2013-05-30
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多