Extensibility
Motivation
Middleware
public class ContainerRegistrationMiddleware<TIocContainer, TContainerConstraint> :
RegistrationMiddlewareBase,
IMiddleware<TIocContainer>
where TIocContainer : class, TContainerConstraint
{
public ContainerRegistrationMiddleware(IEnumerable<ICompositionModule> modules) : base(modules)
{
}
public TIocContainer Apply(TIocContainer @object)
{
if (Modules != null)
{
var matchingModules = Modules.OfType<ICompositionModule<TContainerConstraint>>();
var modules =
matchingModules.SortTopologically();
foreach (var compositionModule in modules)
{
compositionModule.RegisterModule(@object);
}
}
return @object;
}
}Aspects
Last updated