Reflect

The Reflect package contains classes that can be used to examine the properties, methods and type of a class. In addition, it can be used to dynamically set the values of a property and create objects of a specific type.

Classes

MethodReflector

Helper class used to perform method introspection and dynamic invocation. This class has symmetric implementation across all languages supported by Pip.Services toolkit and used to support dynamic data processing. Because all languages have different casing and case sensitivity rules, this MethodReflector treats all method names as case insensitive.

ObjectReader

Helper class used to perform property introspection and dynamic reading. In contrast to PropertyReflector which only introspects regular objects, this ObjectReader is also able to handle maps and arrays. For maps, properties are key-pairs identified by string keys, For arrays, properties are elements identified by integer index.

ObjectWriter

Helper class used to perform property introspection and dynamic writing. In contrast to PropertyReflector, which only introspects regular objects, this ObjectWriter is also able to handle maps and arrays. For maps, properties are key-pairs identified by string keys, For arrays, properties are elements identified by integer index.

PropertyReflector

Helper class used to perform property introspection and dynamic reading and writing. This class has symmetric implementation across all languages supported by the Pip.Services toolkit and used to support dynamic data processing. Because all languages have different casing and case sensitivity rules, this PropertyReflector treats all property names as case insensitive.

RecursiveObjectReader

Helper class used to perform property introspection and dynamic reading. It is similar to ObjectReader but reads properties recursively through the entire object graph. Nested property names are defined using dot notation as “object.subobject.property”

RecursiveObjectWriter

Helper class to perform property introspection and dynamic writing. It is similar to ObjectWriter but writes properties recursively through the entire object graph. Nested property names are defined using dot notation as “object.subobject.property”

TypeDescriptor

Descriptor that points to a specific object type by it’s name and optional library (or module) where this type is defined. This class has symmetric implementation across all languages supported by the Pip.Services toolkit and used to support dynamic data processing.

TypeMatcher

Descriptor that points to a specific object type by it’s name and optional library (or module) where this type is defined. This class has symmetric implementation across all languages supported by the Pip.Services toolkit and used to support dynamic data processing.

TypeReflector

Helper class used to perform object type introspection and object instantiation. This class has symmetric implementation across all languages supported by the Pip.Services toolkit and used to support dynamic data processing. Because all languages have different casing and case sensitivity rules, this TypeReflector treats all type names as case insensitive.