我在C#中有一个可分类的类,如下所示
iOS7
我从数据库中获取数据并映射到此类。我有要求
DeskNumber将包含以下格式的数据
格式1。
namespace DataRequest
{
[Serializable]
public class BaseData
{
[JsonProperty(PropertyName = "u_additional_info")]
public string DeskNumber { get; set; }
}
}
格式2
<AdditionalInfo><Number>164</Number></AdditionalInfo>
在序列化期间,如果数据是第一个,我需要在标签下返回值(即.164)。数字标签下的值在不同的时间会有所不同。因此需要在数字标签下的逻辑查找值。如果数据在任何其他格式1和#34;以外的格式;然后将其作为空白返回。
或
我可以应用逻辑,即使它在设置值而非序列化期间
任何人都可以帮忙吗
答案 0 :(得分:0)
使用以下代码,您将在Number Tag下获得Value。 resulMessage.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; }
}
}
答案 1 :(得分:0)
如果 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了解详细信息