所以,我有一個在運行時加載dll的項目,我使用反射和界面來創建dll。如何序列化dll內的對象?
我創建了一個引用爲dll(在運行時)的用戶控件,該用戶控件具有需要序列化的List。它序列化項目的權利,但是當我嘗試加載它時,我無法反序列化它。
現在,我在另一個引用用戶控件作爲項目的項目上測試了這個usercontrol,它運行良好。
這裏是我的代碼:
static public object SerializeLoad(string sFilename)
{
try
{
object _object = null;
Stream stream = File.Open(sFilename, FileMode.Open);
//BinaryFormatter bformatter = new BinaryFormatter();
XmlSerializer bformatter = new XmlSerializer(typeof(ElementTodo), "ToDo");
//_object = (_object.GetType())bformatter.Deserialize(stream);
_object = bformatter.Deserialize(stream);
stream.Close();
return _object;
}
catch
{
return null;
}
}
我都嘗試,二進制XML和均通過「有XML文檔中的錯誤(2,2)」。任何想法爲什麼是這樣的?
生成的XML如下:
<?xml version="1.0"?>
<ArrayOfElementTodo xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:xsd="w3.org/2001/XMLSchema"; xmlns="ToDo">
<ElementTodo Title="a" content="aa" isDone="false" />
<ElementTodo Title="b" content="bb" isDone="false" />
<ElementTodo Title="c" content="cc" isDone="false" />
<ElementTodo Title="d" content="dd" isDone="false" />
</ArrayOfElementTodo>
如果您將其序列化爲XML文件,那麼您可以發佈此文件的內容嗎? – 2011-04-25 23:41:38
<?xml version =「1.0」?> ArrayOfElementTodo> –
2011-04-25 23:50:53
序列化數據一個*數組*,你試圖反序列化一個元素。 – 2011-04-26 00:16:34