Vb.net 我们如何序列化一个不是我们自己的自定义类的类?
我需要查看一个对象的属性,但我无法在我的开发机器上以正确的状态实例化这个对象。我需要我的客户机在她的机器上运行一些代码,将有问题的对象序列化到磁盘,然后我可以分析文件 这是我想要序列化的类 System.Security.AccessControl.RegistrySecurity 这是我的密码:Vb.net 我们如何序列化一个不是我们自己的自定义类的类?,vb.net,serialization,Vb.net,Serialization,我需要查看一个对象的属性,但我无法在我的开发机器上以正确的状态实例化这个对象。我需要我的客户机在她的机器上运行一些代码,将有问题的对象序列化到磁盘,然后我可以分析文件 这是我想要序列化的类 System.Security.AccessControl.RegistrySecurity 这是我的密码: Private Sub SerializeRegSecurity(ByVal regKey As RegistryKey) Try Dim regSecurity
Private Sub SerializeRegSecurity(ByVal regKey As RegistryKey)
Try
Dim regSecurity As System.Security.AccessControl.RegistrySecurity = regKey.GetAccessControl()
Dim oXS As XmlSerializer = New XmlSerializer(GetType(System.Security.AccessControl.RegistrySecurity))
Dim oStmW As StreamWriter
Dim regDebugFilePath As String = Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "RegDebugFile.xml")
'Serialize object to XML and write it to XML file
oStmW = New StreamWriter(regDebugFilePath)
oXS.Serialize(oStmW, regSecurity)
oStmW.Close()
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try
End Sub
以下是我在XML文件中得到的结果:
<?xml version="1.0" encoding="utf-8"?>
关于如何完成我想做的事情有什么想法吗?我们如何序列化一个不是我们自己的自定义类的类
谢谢你的帮助。甚至还有另一种方法。您可以尝试使用的方法。这将把对象图序列化为一个流,然后您可以根据需要持久化该流。您有几个选项。以下是三个主要问题: 您可以为希望序列化的类编写一个包装类,然后对包装进行序列化和反序列化。在反序列化时,包装器需要从自己的数据重新构造序列化对象,并且需要从包装器中提取重构的对象 另一个选择是实现一个。您需要手动配置GetObjectData和SetObjectData方法,它们控制数据如何进出序列化对象
如果要序列化的类是可继承的,并且可以使用子类而不是原始类,则可以创建一个实现的Decentant类。与序列化代理一样,您必须自己处理 谢谢,我尝试使用BinaryFormatter的Serialize方法,但我得到一个异常,该异常表示System.Security.AccessControl.RegistrySecurity未标记为可序列化。这些选项看起来很有希望。但我不知道如何开始实施这些措施。你有任何代码示例的链接可以让我开始吗?谢谢同时,我会开始用谷歌搜索,看看是否能找到一些样本来帮助我。也许这篇MSDN文章会有所帮助:也可以查看我上面帖子中GetObjectData链接的样本代码,我想我会放弃这个问题。我不知道如何在一个不是我的类上处理这个问题。