Show / Hide Table of Contents

Class Reflector

Provides access to fast reflection routines.

Inheritance
Object
Reflector
Inherited Members
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: DotNext.Reflection
Assembly: DotNext.Reflection.dll
Syntax
public static class Reflector

Methods

| Improve this Doc View Source

MemberOf<TMember>(Expression<Action>)

Extracts member metadata from expression tree.

Declaration
[Obsolete("Use overloaded generic method that allows to specify delegate type explicitly")]
public static TMember MemberOf<TMember>(Expression<Action> exprTree)

    where TMember : MemberInfo
Parameters
Type Name Description
Expression<Action> exprTree

Expression tree.

Returns
Type Description
TMember

Reflected member; or null, if lambda expression doesn't reference a member.

Type Parameters
Name Description
TMember

Type of member to reflect.

| Improve this Doc View Source

MemberOf<TMember, TDelegate>(Expression<TDelegate>)

Extracts member metadata from expression tree.

Declaration
public static TMember MemberOf<TMember, TDelegate>(Expression<TDelegate> exprTree)

    where TMember : MemberInfo where TDelegate : Delegate
Parameters
Type Name Description
Expression<TDelegate> exprTree

Expression tree.

Returns
Type Description
TMember

Reflected member; or null, if lambda expression doesn't reference a member.

Type Parameters
Name Description
TMember

Type of member to reflect.

TDelegate

The type of lambda expression.

| Improve this Doc View Source

Unreflect(ConstructorInfo)

Creates dynamic invoker for the constructor.

Declaration
public static DynamicInvoker Unreflect(this ConstructorInfo ctor)
Parameters
Type Name Description
ConstructorInfo ctor

The constructor to unreflect.

Returns
Type Description
DynamicInvoker

The delegate that can be used to create an object instance.

Exceptions
Type Condition
NotSupportedException

The type of parameter is ref-like value type.

| Improve this Doc View Source

Unreflect(FieldInfo, Boolean, BindingFlags)

Creates dynamic invoker for the field.

Declaration
public static DynamicInvoker Unreflect(this FieldInfo field, bool volatileAccess, BindingFlags flags = BindingFlags.GetField | BindingFlags.SetField)
Parameters
Type Name Description
FieldInfo field

The field to unreflect.

Boolean volatileAccess

true to generate volatile access to the field.

BindingFlags flags

Describes the access to the field using invoker.

Returns
Type Description
DynamicInvoker

The delegate that can be used to access field value.

Remarks

This method doesn't cache the result so the caller is responsible for storing delegate to the field or cache. flags supports the following combination of values: GetField, SetField or both.

Exceptions
Type Condition
ArgumentOutOfRangeException

flags is invalid.

NotSupportedException

The type of field is ref-like value type.

| Improve this Doc View Source

Unreflect(FieldInfo, BindingFlags)

Creates dynamic invoker for the field.

Declaration
public static DynamicInvoker Unreflect(this FieldInfo field, BindingFlags flags = BindingFlags.GetField | BindingFlags.SetField)
Parameters
Type Name Description
FieldInfo field

The field to unreflect.

BindingFlags flags

Describes the access to the field using invoker.

Returns
Type Description
DynamicInvoker

The delegate that can be used to access field value.

Remarks

This method doesn't cache the result so the caller is responsible for storing delegate to the field or cache. flags supports the following combination of values: GetField, SetField or both.

Exceptions
Type Condition
ArgumentOutOfRangeException

flags is invalid.

NotSupportedException

The type of field is ref-like value type.

| Improve this Doc View Source

Unreflect(MethodInfo)

Creates dynamic invoker for the method.

Declaration
public static DynamicInvoker Unreflect(this MethodInfo method)
Parameters
Type Name Description
MethodInfo method

The method to unreflect.

Returns
Type Description
DynamicInvoker

The delegate that can be used to invoke the method.

Exceptions
Type Condition
NotSupportedException

The type of parameter or return type is ref-like value type.

| Improve this Doc View Source

Unreflect<TDelegate>(ConstructorInfo)

Unreflects constructor to its typed and callable representation.

Declaration
public static Constructor<TDelegate> Unreflect<TDelegate>(this ConstructorInfo ctor)

    where TDelegate : MulticastDelegate
Parameters
Type Name Description
ConstructorInfo ctor

Constructor to unreflect.

Returns
Type Description
Constructor<TDelegate>

Unreflected constructor.

Type Parameters
Name Description
TDelegate

A delegate representing signature of constructor.

| Improve this Doc View Source

Unreflect<TValue>(FieldInfo)

Obtains managed pointer to the static field.

Declaration
public static Field<TValue> Unreflect<TValue>(this FieldInfo field)
Parameters
Type Name Description
FieldInfo field

The field to unreflect.

Returns
Type Description
Field<TValue>

Unreflected static field.

Type Parameters
Name Description
TValue

The field type.

| Improve this Doc View Source

Unreflect<TDelegate>(MethodInfo)

Unreflects method to its typed and callable representation.

Declaration
public static Method<TDelegate> Unreflect<TDelegate>(this MethodInfo method)

    where TDelegate : MulticastDelegate
Parameters
Type Name Description
MethodInfo method

A method to unreflect.

Returns
Type Description
Method<TDelegate>

Unreflected method.

Type Parameters
Name Description
TDelegate

A delegate representing signature of method.

| Improve this Doc View Source

Unreflect<T, TValue>(FieldInfo)

Obtains managed pointer to the instance field.

Declaration
public static Field<T, TValue> Unreflect<T, TValue>(this FieldInfo field)
Parameters
Type Name Description
FieldInfo field

The field to unreflect.

Returns
Type Description
Field<T, TValue>

Unreflected instance field.

Type Parameters
Name Description
T

The type of the object that declares instance field.

TValue

The field type.

  • Improve this Doc
  • View Source
In This Article
Back to top Generated by DocFX