Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Equivalent to eval()
Message
From
28/03/2010 22:10:33
 
 
To
28/03/2010 20:55:18
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Miscellaneous
Thread ID:
01457734
Message ID:
01457758
Views:
61
>>I have a number of properties which are objects ( business objects )
>>
>>If I have string which is the same as the name of one of those properties I would like to find the value of a property of the corresponding object.
>>
>>in VFP
>>
>>*property is called _Propmaster
>>
>>varstr = "Propmaster"
>>prop = "_"+varstr+".count"
>>
>>mycount = eval(prop)
>>
>>
>>Looking for a technique that will accomplish the same thing in .NET
>
>As you might have found, there is no evaluate in .NET. Here is what you need:
>
>
>        ' Return a reference to a control by the use of its name
>        ' expO1 Form
>        ' expC1 Name of the control
>        Public Function FindControlByFieldName(ByVal loForm As System.Windows.Forms.Form, ByVal tcProperty As String) As Object
>            Dim loFieldInfo As System.Reflection.FieldInfo = Nothing
>            Dim loObject As Object = Nothing
>            Dim loPropertyInfo As System.Reflection.PropertyInfo = Nothing
>            Dim loType As System.Type = Nothing
>
>            ' Get the form type
>            loType = loForm.GetType()
>
>            ' Get the property info
>            loPropertyInfo = loType.GetProperty(tcProperty, System.Reflection.BindingFlags.Public Or _
>             System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance Or _
>             System.Reflection.BindingFlags.DeclaredOnly)
>
>            ' If the property info is known as an object
>            If Not loPropertyInfo Is Nothing Then
>                Return loPropertyInfo.GetValue(loForm, Nothing)
>            End If
>
>            ' Get the field info
>            loFieldInfo = loType.GetField(tcProperty, System.Reflection.BindingFlags.Public Or _
>             System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance Or _
>             System.Reflection.BindingFlags.DeclaredOnly)
>
>            ' If the field info is nothing
>            If loFieldInfo Is Nothing Then
>                Return Nothing
>            End If
>
>            ' Get the field object
>            loObject = loFieldInfo.GetValue(loForm)
>
>            Return loObject
>        End Function
>
WOW! Thanks Michel - that indeed looks like exactly what I need. It is also very educational in how to accomplish this kind of stuff.

I appreciate it.


Charles Hankey

Though a good deal is too strange to be believed, nothing is too strange to have happened.
- Thomas Hardy

Half the harm that is done in this world is due to people who want to feel important. They don't mean to do harm-- but the harm does not interest them. Or they do not see it, or they justify it because they are absorbed in the endless struggle to think well of themselves.

-- T. S. Eliot
Democracy is two wolves and a sheep voting on what to have for lunch.
Liberty is a well-armed sheep contesting the vote.
- Ben Franklin

Pardon him, Theodotus. He is a barbarian, and thinks that the customs of his tribe and island are the laws of nature.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform