在序列化过程中修改数据-C# -JSON.NET



我在c#中有一个可凝聚的类,如下

   namespace DataRequest
  {
   [Serializable]
  public class BaseData
    { 
    [JsonProperty(PropertyName = "u_additional_info")]
    public string DeskNumber { get; set; }
   }
  }

我正在从数据库中获取数据并映射到此类。我有要求

  1. desknumber将以以下格式包含数据

    格式。

      <AdditionalInfo><Number>164</Number></AdditionalInfo>
    

    格式2

     AdditionalInfo><Code>GLW51</Code><Lang>GLW51</LangCode><TzCode>GLW51</TzCode></AdditionalInfo>
    

    在序列化期间,如果数据是第一个,则我需要在标签下返回值(即.164)。在不同时间标记下的值会有所不同。因此,需要一个逻辑查找值下的逻辑标签。IFN数字标签。IFDATA在其他任何位置格式以外的"格式化1",然后将其返回为空白。

即使在设置值而不是序列化期间,我也可以应用逻辑

任何人都可以在此方面提供帮助

如果 format1 format2 是在不同的文件中的同一文件内容 时间您可以被串行序列化xmlcontent此代码

尝试此

        // Generic DeSerialization metod.
        public T DeSerialization<T>(string xmlStrig)  where T : class
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
            using (StringReader sReader = new StringReader(xmlStrig))
            {
                return (T)xmlSerializer.Deserialize(sReader);
            }
        }
        // Accepted class
        [Serializable]    
        public class AdditionalInfo
        {
            [XmlElement]
            public string Number { get; set; }
        }
        // DeSerialize to Object code
        // if you have Xml-string you can send parameter XmlString directly
        // string xmlString = System.IO.File.ReadAllText(@"..\XMLFile1.xml");
        AdditionalInfo ast = DeSerialization<AdditionalInfo>(yourXmlString);

您可以检查www.bilisim.io以获取详细信息

使用以下代码,您将在数字标签下获得值。结果message.number包含所需的结果

string name = YourXmlNodes;
XmlSerializer serializer = new XmlSerializer(typeof(AdditionalInfo));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(name));
AdditionalInfo resultingMessage= (AdditionalInfo)serializer.Deserialize(memStream);

namespace ConsoleApplication1
    {
        [XmlRoot(ElementName = "AdditionalInfo")]
        public class AdditionalInfo
        {
            [XmlElement(ElementName = "Number")]
            public string Number { get; set; }
        }
    }

相关内容

  • 没有找到相关文章

最新更新