我有下面的Employee類。我需要從這個類中生成一個xml,這樣One屬性才被允許。它可能是薪水1或薪水2。用C#XML生成選擇節點
如果salary1從數據庫得到的是比Salary2越大,生成的XML應該只包含salary1的XMLElement和salary2 XML Elment應在生成的XML
現在,我得到生成的XML元素都缺席。
如果從數據庫獲得的salary2大於Salary1,則生成的XML應該只包含salary2 XMLElement和salary1 XML Elment應該在生成的XML中不存在。
我試過使用選擇標識符,我無法理解它。
公共類節目 {
public class Employee
{
public int Salary1 { get; set; }
public int Salary2 { get; set; }
}
public static class Database
{
public static int Salary1 = 100;
public static int Salary2= 50;
}
public static void Main(string[] args)
{
XmlSerializer xsSubmit = new XmlSerializer(typeof(Employee));
Employee subReq;
if (Database.Salary1 > Database.Salary2)
{
subReq = new Employee { Salary1 = Database.Salary1 };
}
else
{
subReq = new Employee { Salary2 = Database.Salary2 };
}
var xml = "";
using (var sww = new StringWriter())
{
using (XmlWriter writer = XmlWriter.Create(sww))
{
xsSubmit.Serialize(writer, subReq);
xml = sww.ToString(); // Your XML
}
}
Console.WriteLine(xml);
Console.ReadLine();
}
}
}
要獲得唯一一個工資做出了一個基類薪酬有兩個繼承的類Salary1和Salary2有一個單一的財產如薪酬一段reasons.Changing數據類型。然後使DataBase中的屬性成爲Salary1或Salary2的基類Salary。 – jdweng
爲什麼你沒有一個Salary屬性,並用符合標準的正確值初始化它? –