Class Decorator
- Namespace
- Cuemon
- Assembly
- Cuemon.Core.dll
Provides a way to support hiding of non-common extension methods by enclosing/wrapping an object within the IDecorator<T> interface.
public static class Decorator
- Inheritance
-
Decorator
Remarks
Methods
Enclose<T>(T, Boolean)
Encloses the specified inner
so that it can be extended by non-common extension methods.
public static Decorator<T> Enclose<T>(T inner, bool throwIfNull = true)
Parameters
inner
TThe object to extend for non-common extension methods.
throwIfNull
Booleantrue
to throw an ArgumentNullException wheninner
is null;false
to allowinner
to be null. Default istrue
.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
T
The type of the
inner
to wrap for non-common extension methods.
Exceptions
- ArgumentNullException
inner
cannot be null.
EncloseToExpose<T>(T, Boolean, String)
Encloses the specified inner
so that it can be extended by both common and non-common extension methods.
public static Decorator<T> EncloseToExpose<T>(T inner, bool throwIfNull = true, string argumentName = null)
Parameters
inner
TThe object to extend for non-common extension methods.
throwIfNull
Booleantrue
to throw an ArgumentNullException wheninner
is null;false
to allowinner
to be null. Default istrue
.argumentName
StringThe name of the argument from which
inner
parameter was provided.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
T
The type of the
inner
to wrap for non-common extension methods.
Remarks
This should be used to re-use non-common extension methods from native extension methods without double-validating arguments.
Exceptions
- ArgumentNullException
inner
cannot be null.
RawEnclose<T>(T)
Encloses the specified inner
so that it can be extended by non-common extension methods.
public static Decorator<T> RawEnclose<T>(T inner)
Parameters
inner
TThe object to extend for non-common extension methods.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
T
The type of the
inner
to wrap for non-common extension methods.
Remarks
Unlike Enclose<T>(T, Boolean), this method does not perform a null-check when wrapping the value.
Syntactic<T>()
Syntactic sugar for the rare cases where retrieving properties exposed as methods is a necessity.
public static Decorator<T> Syntactic<T>()
Returns
- Decorator<T>
An instance of Decorator<T> where the Inner defaults to
T
.
Type Parameters
T
The type to wrap for non-common extension methods.