Функция, чтобы взять класс / сообщение, скрыть некоторые поля и вернуть сообщение .Net - PullRequest
1 голос
/ 26 апреля 2019

Здравствуйте, у меня есть это сообщение / класс, например, вот так

[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, поскольку он исходит от другого соучастия и не должен редактироваться.Так что какой-то способ зашифровать / спрятать поля в сообщении и вернуть невидимые

1 Ответ

1 голос
/ 26 апреля 2019
   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)
    {


    }
...