我正在尝试继续使用PrinterSettings(VB.NET 3.5),但继续读取异常。这是我正在使用的代码。适用于其他类型的对象。
我尝试将默认打印机更改为其他打印机,也使用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 :(得分: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
如果您还不熟悉,Google搜索会显示如何使用BinaryFormatter或NetDataContractSerializer。