プロパティがList(of T) の型であるかどうかを知る必要がありますが、現在できません。私はTest System.Collections.Generic.List(of T)のプロパティ
TypeOf (UpdateTo.GetType.GetProperty(node.Name)) Is System.Collections.Generic.List(Of Object)
をすれば、私は次のようなエラー
TypeOf関数(UpdateTo.GetType.GetProperty(node.Nameは))(オブジェクトの) System.Collections.Generic.Listタイプの表現で取得します 'System.Reflection.PropertyInfo'はタイプ 'System.Collections.Generic.List(Of Object)'になることはありません。
If xmlRequestNode IsNot Nothing Then
'if there is at least one property to update
If xmlRequestNode.ChildNodes.Count > 0 Then
'loop through each property that needs setting
For Each node As XmlNode In xmlRequestNode.ChildNodes
Try
'TODO: We do not want to set lists of objects. Currently we have issues where it tries to set the whole object instead of
'going into the object and set each property.
If UpdateTo.GetType.GetProperty(node.Name).GetType() IsNot GetType(System.Collections.Generic.List(Of Object)) Then
'and set it to the equivalent property on the user group model that was passed in (we don't use the node value as it would need casting and could be an object)
UpdateTo.GetType.GetProperty(node.Name).SetValue(UpdateTo, UpdateFrom.GetType.GetProperty(node.Name).GetValue(UpdateFrom, Nothing), Nothing)
End If
Catch ex As Exception
'and send details of the problem
Return "Could not find or set a property called " & node.Name
End Try
Next
Else
'and send details of the problem
Return "No updates were requested"
End If
Else
'and send details of the problem
Return "No object to update from was supplied"
End If
ilistを実装すれば、どうすればテストできるのですか? – Steve
また、 "GetPropertyType()"について...エラーが発生しました 'GetPropertyType'は 'System.Reflection.PropertyInfo'のメンバーではありません。 – Steve
申し訳ありません。 '.GetPropertyType()'を '.PropertyType'に置き換えてください。 'IList'を実装しているかどうかをテストする場合は、' Type.IsSubclassOf(Type) 'メソッドを使用してください。 –