所以我需要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