Как игнорировать поле DataMember во время выполнения при сериализации - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть следующий c# класс, использующий

using System.Runtime.Serialization;

[DataContract] public class ClassA
{
   [DataMember] public string _id;
   [DataMember] public string author;
   [DataMember] public string updateTime;
}

Затем я передаю этот объект в следующий сериализатор:

public string Serialize<T>(ref T obj)
{
   // Creates a  serializer object
   DataContractJsonSerializer js = new DataContractJsonSerializer(obj.GetType());

   // Creates a stream whose backing store is memory.
   MemoryStream ms = new MemoryStream();

   js.WriteObject(ms, obj);

   ms.Position = 0; // reset position
   StreamReader sr = new StreamReader(ms);

   return sr.ReadToEnd(); // Returns the JSON String
}

Мой вопрос такой, какой я есть Не всегда хочется сериализовать поле _id. Был ли способ, которым я мог бы указать указанное поле c и игнорировать его во время выполнения? Я думал об удалении строки вручную, а также о наследовании, но игнорирование указанного поля c во время выполнения было бы наиболее идеальным.

...