【发布时间】:2010-02-03 17:34:03
【问题描述】:
我正在动态创建 .NET 验证器并将我正在调用的属性和值传递给调用该属性并提供值的方法。
这适用于大多数属性。但是当我尝试调用比较验证器的 Operator 方法或 Type 方法时,我收到一条错误消息,指出找不到该属性。我正在使用的代码如下。我知道它需要错误处理,但我仍处于早期开发阶段,想看看它在哪里爆炸。通过调试器,我可以看到作为 Obj 提供的参数确实是一个 CompareValidator 并且确实具有无法找到的属性。我认为它可能只是找到基本属性(我在调用者中向下转换为基本验证器),但它适用于不是 BaseValidator 成员的 ControlToCompare。任何帮助,将不胜感激。
''' <summary>
''' Invokes a property on the supplied object
''' </summary>
''' <param name="Obj">Object to invoke the property on</param>
''' <param name="PropertyName">Name of the property to invoke</param>
''' <param name="PropertyValue">Value of the property</param>
''' <returns></returns>
''' <remarks>Uses reflection to invoke the property</remarks>
Private Function InvokeProperty(ByVal Obj As Object, ByVal PropertyName As String, ByVal PropertyValue As String) As Object
Dim Params(0) As String
Params(0) = PropertyValue
Return Obj.GetType().InvokeMember(PropertyName, Reflection.BindingFlags.SetProperty, Nothing, Obj, Params)
End Function
【问题讨论】:
标签: .net reflection validation