Class InstanceProvider

Represents a way to obtain an instance of a type.

This can be backed by a zero-parameter constructor, a constructor taking typed parameters, a static method, or a delegate.

Inheritance
System.Object
InstanceProvider
Implements
System.IEquatable<InstanceProvider>
Namespace: Cesil
Assembly: Cesil.dll
Syntax
public sealed class InstanceProvider : Object, IEquatable<InstanceProvider>, IElseSupporting<InstanceProvider>

Methods

AllowNullRows()

Returns a InstanceProvider that differs from this by explicitly allowing null rows to be created by it.

Declaration
public InstanceProvider AllowNullRows()
Returns
Type Description
InstanceProvider

Else(InstanceProvider)

Create a new instance provider that will try this instance provider, but if it returns false it will then try the given fallback InstanceProvider.

Declaration
public InstanceProvider Else(InstanceProvider fallbackProvider)
Parameters
Type Name Description
InstanceProvider fallbackProvider
Returns
Type Description
InstanceProvider

Equals(InstanceProvider)

Returns true if this object equals the given InstanceProvider.

Declaration
public bool Equals(InstanceProvider instanceProvider)
Parameters
Type Name Description
InstanceProvider instanceProvider
Returns
Type Description
System.Boolean

Equals(Object)

Returns true if this object equals the given InstanceProvider.

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
System.Object obj
Returns
Type Description
System.Boolean

ForbidNullRows()

Returns a InstanceProvider that differs from this by explicitly forbidding null rows be created by it.

If the .NET runtime cannot guarantee that null rows will not be created at runtime, null checks will be injected.

Declaration
public InstanceProvider ForbidNullRows()
Returns
Type Description
InstanceProvider

ForConstructorWithParameters(ConstructorInfo)

Create a new InstanceProvider from a constructor that takes parameters.

An InstanceProvider of this type must be paired with Setters that map to the parameters on this constructor.

The constructed type must be concrete, that is:

  • not an interface
  • not an abstract class
  • not a generic parameter
  • not an unbound generic type (ie. a generic type definition)
Declaration
public static InstanceProvider ForConstructorWithParameters(ConstructorInfo constructor)
Parameters
Type Name Description
System.Reflection.ConstructorInfo constructor
Returns
Type Description
InstanceProvider

ForDelegate<TInstance>(InstanceProviderDelegate<TInstance>)

Create a new InstanceProvider from delegate.

There are no restrictions on what the give delegate may do, but be aware that it may be called from many different contexts.

Declaration
public static InstanceProvider ForDelegate<TInstance>(InstanceProviderDelegate<TInstance> del)
Parameters
Type Name Description
InstanceProviderDelegate<TInstance> del
Returns
Type Description
InstanceProvider
Type Parameters
Name Description
TInstance

ForMethod(MethodInfo)

Creates a new InstanceProvider from a method.

The method must:

  • be static
  • return a bool
  • have two parameters
  • the first must be an in ReadContext
  • the second must be an out parameter of the constructed type
Declaration
public static InstanceProvider ForMethod(MethodInfo method)
Parameters
Type Name Description
System.Reflection.MethodInfo method
Returns
Type Description
InstanceProvider

ForParameterlessConstructor(ConstructorInfo)

Create a new InstanceProvider from a parameterless constructor.

The constructed type must be concrete, that is:

  • not an interface
  • not an abstract class
  • not a generic parameter
  • not an unbound generic type (ie. a generic type definition)
Declaration
public static InstanceProvider ForParameterlessConstructor(ConstructorInfo constructor)
Parameters
Type Name Description
System.Reflection.ConstructorInfo constructor
Returns
Type Description
InstanceProvider

GetDefault(TypeInfo)

Returns the default instance provider for the given type, if one exists.

For reference types, it will use the parameterless constructor.

For value types, it will use the all-zero (aka default) value.

Declaration
public static InstanceProvider GetDefault(TypeInfo forType)
Parameters
Type Name Description
System.Reflection.TypeInfo forType
Returns
Type Description
InstanceProvider

GetHashCode()

Returns a stable hash for this InstanceProvider.

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

ToString()

Returns a representation of this InstanceProvider object.

Only for debugging, this value is not guaranteed to be stable.

Declaration
public override string ToString()
Returns
Type Description
System.String

Operators

Equality(InstanceProvider, InstanceProvider)

Compare two InstanceProviders for equality

Declaration
public static bool operator ==(InstanceProvider a, InstanceProvider b)
Parameters
Type Name Description
InstanceProvider a
InstanceProvider b
Returns
Type Description
System.Boolean

Explicit(Delegate to InstanceProvider)

Convenience operator, equivalent to calling ForDelegate if non-null.

Returns null if del is null.

Declaration
public static explicit operator InstanceProvider(Delegate del)
Parameters
Type Name Description
System.Delegate del
Returns
Type Description
InstanceProvider

Explicit(ConstructorInfo to InstanceProvider)

Convenience operator, equivalent to calling ForParameterlessConstructor or ForConstructorWithParameters if non-null.

Returns null if field is null.

Declaration
public static explicit operator InstanceProvider(ConstructorInfo cons)
Parameters
Type Name Description
System.Reflection.ConstructorInfo cons
Returns
Type Description
InstanceProvider

Explicit(MethodInfo to InstanceProvider)

Convenience operator, equivalent to calling ForMethod if non-null.

Returns null if method is null.

Declaration
public static explicit operator InstanceProvider(MethodInfo method)
Parameters
Type Name Description
System.Reflection.MethodInfo method
Returns
Type Description
InstanceProvider

Inequality(InstanceProvider, InstanceProvider)

Compare two InstanceProvider for inequality

Declaration
public static bool operator !=(InstanceProvider a, InstanceProvider b)
Parameters
Type Name Description
InstanceProvider a
InstanceProvider b
Returns
Type Description
System.Boolean

Implements

System.IEquatable<>
In This Article
Back to top Generated by DocFX