CSharpTest.Net
TraverseProperties Method
See Also  Example Send Feedback Download Help File
CSharpTest.Net.Library Assembly > CSharpTest.Net.Reflection Namespace > PropertyValue Class : TraverseProperties Method

instance
Any object to begin the traverse from
propertyNames
The name of the properties or fields usually '.' delimited

Glossary Item Box

Walks a heirarchy of properties from the given type down. You can specify in any of the following ways: "ClientRectangle.X", "ClientRectangle/X"

Syntax

Visual Basic (Declaration) 
Public Shared Function TraverseProperties( _
   ByVal instance As Object, _
   ByVal ParamArray propertyNames() As String _
) As PropertyValue
C# 
public static PropertyValue TraverseProperties( 
   object instance,
   params string[] propertyNames
)

Parameters

instance
Any object to begin the traverse from
propertyNames
The name of the properties or fields usually '.' delimited

Example

Library/Library.Test/TestPropertyValue.cs

C#Copy Code
b obj = new b();
a obja = new a();
obj.publicField = obja;
obja.PropertyA = "test";

PropertyValue pt;
//Any of the following formats can be used
pt = PropertyValue.TraverseProperties(obj, "publicField.PropertyA.Length");
Assert.AreEqual("Length", pt.Name);
Assert.AreEqual(typeof(int), pt.Type);
pt = PropertyValue.TraverseProperties(obj, "publicField", "PropertyA", "Length");
Assert.AreEqual("Length", pt.Name);
Assert.AreEqual(typeof(int), pt.Type);
pt = PropertyValue.TraverseProperties(obj, "publicField.PropertyA", "Length");
Assert.AreEqual("Length", pt.Name);
Assert.AreEqual(typeof(int), pt.Type);
pt = PropertyValue.TraverseProperties(obj, "publicField/PropertyA\\Length");
Assert.AreEqual("Length", pt.Name);
Assert.AreEqual(typeof(int), pt.Type);
pt = PropertyValue.TraverseProperties(obj, "publicField\\PropertyA", "Length");
Assert.AreEqual("Length", pt.Name);
Assert.AreEqual(typeof(int), pt.Type);
            
pt = PropertyValue.TraverseProperties(obj, "publicField/PropertyA");
Assert.AreEqual("PropertyA", pt.Name);
Assert.AreEqual(typeof(string), pt.Type);

Assert.AreEqual("test", pt.Value);
pt.Value = "b";
Assert.AreEqual("b", pt.Value);
VB.NETCopy Code
Dim obj As New b()
Dim obja As New a()
obj.publicField = obja
obja.PropertyA = "test"

Dim pt As PropertyValue
'Any of the following formats can be used
pt = PropertyValue.TraverseProperties(obj, "publicField.PropertyA.Length")
Assert.AreEqual("Length", pt.Name)
Assert.AreEqual(GetType(Integer), pt.Type)
pt = PropertyValue.TraverseProperties(obj, "publicField", "PropertyA", "Length")
Assert.AreEqual("Length", pt.Name)
Assert.AreEqual(GetType(Integer), pt.Type)
pt = PropertyValue.TraverseProperties(obj, "publicField.PropertyA", "Length")
Assert.AreEqual("Length", pt.Name)
Assert.AreEqual(GetType(Integer), pt.Type)
pt = PropertyValue.TraverseProperties(obj, "publicField/PropertyA\Length")
Assert.AreEqual("Length", pt.Name)
Assert.AreEqual(GetType(Integer), pt.Type)
pt = PropertyValue.TraverseProperties(obj, "publicField\PropertyA", "Length")
Assert.AreEqual("Length", pt.Name)
Assert.AreEqual(GetType(Integer), pt.Type)

pt = PropertyValue.TraverseProperties(obj, "publicField/PropertyA")
Assert.AreEqual("PropertyA", pt.Name)
Assert.AreEqual(GetType(String), pt.Type)

Assert.AreEqual("test", pt.Value)
pt.Value = "b"
Assert.AreEqual("b", pt.Value)

Requirements

Target Platforms: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7

See Also

Generated with Document! X 2011 by Innovasys