我在c#中有一个可凝聚的类,如下
namespace DataRequest
{
[Serializable]
public class BaseData
{
[JsonProperty(PropertyName = "u_additional_info")]
public string DeskNumber { get; set; }
}
}
我正在从数据库中获取数据并映射到此类。我有要求
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; }
}
}