我的問題可能是由於對XML序列化的基本誤解引起的,但無論如何...
我想序列化一個包含使用XMLSerializer初始化的數組的對象類。最小的例子:XML序列化初始化爲數組
using System;
using System.IO;
using System.Xml.Serialization;
namespace XMLSerializationTest
{
class Program
{
static void Main(string[] args)
{
try
{
string xmlFileName = Environment.CurrentDirectory + @"\somename.xml";
XmlSerializer writer = new XmlSerializer(typeof(MyClass));
FileStream file = File.Create(xmlFileName);
MyClass someclass = new MyClass();
writer.Serialize(file, someclass);
file.Close();
}
catch (Exception exc)
{
Console.WriteLine(exc);
}
Console.ReadLine();
}
}
public class MyClass
{
public object myObject;
public MyClass()
{
myObject = new string[1] { "somestring" };
}
}
}
但是,這拋出System.InvalidOperationException,閱讀數組不能在這裏使用。如果用MyClass構造函數替換數組,例如使用一個簡單的字符串,如myObject = "somestring";
,它就可以正常工作。不幸的是,我只是不知道我的對象是否會提前陣列。那麼有沒有解決這個問題的可能性,例如與屬性或XML是在這種情況下去錯誤的方式?
您是否知道可以預先保存在'myObject'中的所有可能類型的對象? – dbc
向串行化添加數組定義會向xml添加不必要的標記。例如不需要標籤:一個 bÇ 。這裏沒有標籤項目:- a
- b
- c
。這兩個xml都是vaild。 –
jdweng