代码段:
Dim target As Object
' target gets properly set to something of the desired type
Dim field As FieldInfo = target.GetType.GetField("fieldName", _
BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.NonPublic)
field.SetValue(target,newValue)
Run Code Online (Sandbox Code Playgroud)
如果目标设置为CLASS的实例,则此代码段完美无缺.
但是,如果将target设置为STRUCTURE的实例,则代码实际上不会更改该字段的值.没有错误,但值保持不变.
而且,奇怪的是,如果我逐句通过代码,看的SetValue不能做任何事情,并立即去立即窗口,键入完全相同的setValue操作,该工程.
有关正在发生什么以及如何实际更改"代码"字段的任何建议?
编辑:
根据Jon Skeet的要求,实际代码:
Private Shared Function XmlDeserializeObject(ByVal objectType As Type, _
ByVal deserializedID As String) As Object
Dim result As Object
result = CreateObject(objectType)
mXmlR.ReadStartElement()
Do While mXmlR.IsStartElement _
AndAlso mXmlR.Name <> elementItem
Dim field As FieldInfo = result.GetType.GetField(FullName, _
BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.NonPublic) …Run Code Online (Sandbox Code Playgroud)