所以我需要xml序列化一個對象的通用列表,其中對象由另一個列表和一個字符串組成。XMLserialize對象的列表和字符串
這就是我現在得到
<?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfRecept xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-<Recept>
<Namn>Nomnom</Namn>
</Recept>
-<Recept>
<Namn>Ännu mer nomnom</Namn>
</Recept>
</ArrayOfRecept>
這裏隻字符串值是序列化,而不是我的列表
這是我的目標,我要序列
public class Recept
{
private ListHanterare<string> ingredienser;
private string namn;
public Recept()
{
ingredienser = new ListHanterare<string>();
}
public ListHanterare<string> Ingredienser
{
get { return ingredienser; }
}
public string Namn
{
get { return namn; }
set { namn = value; }
}
}
所以我將有一個我想要xml序列化的Recept列表,並且我希望xml顯示「Namn」和「Ingredienser」列表。
這是我的串行
class XMLSerial
{
public static bool Serialize<T>(T obj, string filePath)
{
bool bok = true;
XmlSerializer serializer = new XmlSerializer(typeof(T));
TextWriter writer = new StreamWriter(filePath);
try
{
serializer.Serialize(writer, obj);
}
catch
{
bok = false;
}
finally
{
if (writer != null)
writer.Close();
}
return bok;
}
}
這是ListHanterare類,我的對象傳遞給串行內
public bool XMLSerialize(string filePath){
return XMLSerial.Serialize<List<T>>(lista, filePath);
編輯: 所以通過添加二傳手到ingredienser現在我得到這個
-<Recept>
<Ingredienser/>
<Namn>rec</Namn>
</Recept>
但ingredienser仍然是空的 我ListHanterare類是基本泛型列表類
public class ListHanterare<T> : IListHanterare<T>
{
private List<T> lista; // This is the list
private int count;
public ListHanterare()
{
lista = new List<T>();
}
所以我需要序列招待的ListHanterare對象列表,其中招待對象由一個字符串,字符串的另一ListHanterare列表,字符串正確但不連載字符串列表。
將XML元素添加到您的Recept類中,以便序列化程序知道要反序列化的內容。此外,你不是反序列化你的元素,你只是流,並返回值爲真 - 布爾。你沒有回報任何錯誤或真實的東西。 – Aizen 2015-04-05 00:28:25
我在我的類聲明上面有一個[Serializable] – user3621898 2015-04-05 12:30:59
''''[Serializable]'用於二進制格式化而不是'XmlSerializer'。 – dbc 2015-04-05 18:56:31