- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Reply to: Discovering a .net objects properties
Collapse
You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:
- You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
- You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
- If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.
Logging in...
Previously on "Discovering a .net objects properties"
Collapse
-
Heres a version in VB.Net to set the value of a Property that is a string Array
and accepts an Index as a paramater:
Imports System.Reflection
Public Class TargetClass
Private _theArray(10) As String
Public Property MyProp(ByVal theIndex As Integer)
Get
Return (_theArray(theIndex))
End Get
Set(ByVal Value)
_theArray(theIndex) = Value
End Set
End Property
End Class
Public Class PropertyUpdater
Public Sub SetProperties(ByRef targetObject As Object, ByVal index() As Object, ByVal newValue As String)
Dim targetType As Type = targetObject.GetType
Dim props() As PropertyInfo
Dim prop As PropertyInfo
props = targetType.GetProperties
For Each prop In props
prop.SetValue(targetObject, newValue, index)
Next
End Sub
End Class
This would be called by:
Private targetObject As New TargetClass
Private updater As New PropertyUpdater
Private the index as Integer
theIndex = Integer.Parse(TextBoxIndex.Text)
updater.SetProperties(targetObject, New Object() {theIndex}, TextBoxNewValue.Text)
TextBoxCurrentValue.Text = targetObject.MyProp(theIndex)
Obviously you wouldnt really loop through all the PropertyInfos, you would just use GetProperty instead of GetProperties but you get the picture...
Leave a comment:
-
I presume you mean something declared like this:
Public Property TheProperty(ByVal theIndex as Integer, ByVal theValue As String) As String
I take it you are using VB.Net as C# doesnt seem to accept paramaterised properties per se; its possible with an indexer as a workaround, but you can only have one indexer per class in C#.
Look at ParameterInfo, and PropertyInfo.GetIndexProperties. The ParameterInfo has a Position property and this might help you build the correct array of Objects to pass in the third paramater of the SetValue mthod.Last edited by mcquiggd; 26 March 2006, 10:58.
Leave a comment:
-
Discovering a .net objects properties
Any pointer as to the easiest way to obtain a list of proptery names and values that are implemented in a .NET object. Basically all I want to is poulate a grid with the names and properties. Obviously I can write specific code for it but I have a load of different object so wanted to do something generic.
Object.GetType.GetProperties gets me an array of PropertyInfo.
PropertyInfo.Name gets me the name, .CanRead whther or not I can read it and .GetValue the value. What confuses me is how I deal with properties that have parameters. Can't seem to find anything too obvious on MSDN, but then I can only even find info I already know the answer to there.Tags: None
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers

Leave a comment: