Serialize PrinterSettings给出了异常

时间:2010-06-18 13:28:18

标签: .net serialization

我正在尝试继续使用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

1 个答案:

答案 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。