2010-06-18 68 views
0

我試圖堅持PrinterSettings(VB.NET 3.5),但不斷收到異常讀回來。這裏是我使用的代碼。適用於其他類型的對象。序列化PrinterSettings給出了例外

我嘗試將默認打印機更改爲不同的打印機,也使用Microsoft XPS Document Writer。

我讀到.NET 1.1在序列化打印機設置時出現問題,但在2.0版本中得到糾正。

我相信這是愚蠢的東西我在做......

Dim p = New Printing.PrinterSettings 
    Dim L_PrintPageSettings = New System.Drawing.Printing.PageSettings 
    p = L_PrintPageSettings.PrinterSettings 
    Dim objStreamWriter As New StreamWriter("C:\Product.xml") 
    Dim x As New XmlSerializer(p.GetType) 
    x.Serialize(objStreamWriter, p) 
    objStreamWriter.Close() 
    Try 
     'Deserialize text file to a new object. 
     Dim objStreamReader As New StreamReader("C:\Product.xml") 
     Dim p2 As New Printing.PrinterSettings 
     p2 = x.Deserialize(objStreamReader) 
     objStreamReader.Close() 
    Catch ex As Exception 

    End Try 
+0

什麼是例外? – PatrickSteele 2010-06-18 14:30:57

+0

例外是: 「XML文檔(10,4)中存在錯誤。」 – 2010-06-19 12:17:13

回答

1

類是不IXmlSerializable的。嘗試利用以Serializable屬性註釋的事實:http://msdn.microsoft.com/en-us/library/system.drawing.printing.printersettings(VS.71).aspx

使用BinaryFormatter或NetDataContractSerializer或DataContractSerializer(注意最後一個只能在.NET 3.5 SP1中工作)。

最後一個將產生最人類可讀的輸出,所以你可能最好使用它。

示例見的DataContractSerializer在這篇文章的底部:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

谷歌搜索將展示如何,如果你還不熟悉使用的BinaryFormatter或NetDataContractSerializer。

相關問題