我想知道是否有像XmlSerializer那样的对象/函数 - 但是这不需要设置Serializable属性。
这就是为什么:我有第三方对象,我想提取公共属性(包括任何集合)中的信息。
并且 - 当然 - 以下例程返回错误:
There was an error reflecting type 'ThridPartyObject'
因为该对象未使用[Serializable]属性进行编译。
Public Sub SerialMe(ThridPartyObject as Object)
Dim objStreamWriter As New StreamWriter("C:\Object.xml")
Dim x As New XmlSerializer(ThridPartyObject.GetType)
x.Serialize(objStreamWriter, ThridPartyObject)
objStreamWriter.Close()
End Sub
也许会迭代第三方对象的所有公共属性的东西? (以及这些属性的公共属性 - 等等)
有什么想法吗?
答案 0 :(得分:0)
您可以使用反射按字符串名称
访问属性和字段Imports System.Reflection
Module Module1
Sub Main()
Dim c1 As New class1 With {.prop1 = 6, .field1 = 7}
Console.WriteLine(c1.GetType().GetProperty("prop1").GetValue(c1, Nothing))
Console.WriteLine(c1.GetType().GetField("field1").GetValue(c1))
End Sub
End Module
Class class1
Public Property prop1 As Integer
Public field1 As Integer
End Class