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
<p></p>
To help reduce the cognitive load inferred from this feedback (and to avoid traditional Utility/Helper classes), these interfaces and classes was added, leaving a sub-convenient way (fully backed by IntelliSense) to use non-common extension methods.
<p></p>
Pure extension methods should (IMO) be used in the way Microsoft has a paved path to the many NuGet packages complementing the .NET platform and overall follow these guidelines: https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/extension-methods.
<p></p>
Non-common extension methods could also include those rare cases were you need to support your product infrastructure cross-assembly.
Methods
EncloseToExpose<T>(T, bool, 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
innerTThe object to extend for non-common extension methods.
throwIfNullbooltrueto throw an ArgumentNullException wheninneris null;falseto allowinnerto be null. Default istrue.argumentNamestringThe name of the argument from which
innerparameter was provided.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
TThe type of the
innerto 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
innercannot be null.
Enclose<T>(T, bool)
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
innerTThe object to extend for non-common extension methods.
throwIfNullbooltrueto throw an ArgumentNullException wheninneris null;falseto allowinnerto be null. Default istrue.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
TThe type of the
innerto wrap for non-common extension methods.
Exceptions
- ArgumentNullException
innercannot 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
innerTThe object to extend for non-common extension methods.
Returns
- Decorator<T>
An instance of Decorator<T>.
Type Parameters
TThe type of the
innerto wrap for non-common extension methods.
Remarks
Unlike Enclose<T>(T, bool), 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
TThe type to wrap for non-common extension methods.