protected void ForEachInfo(Action <CompositeAssemblyInfo> action)
        {
            ListQuery <CompositeAssemblyInfo> list = this._composites
                                                     .Where(kvp => this._affectedTypes.Contains(kvp.Key))
                                                     .Select(kvp => kvp.Value)
                                                     .FirstOrDefault();

            if (list != null)
            {
                list
                .Where(info => info.Types.IsSupersetOf(this._affectedTypes))
                .Distinct(ReferenceEqualityComparer <CompositeAssemblyInfo> .ReferenceBasedComparer)
                .All(info =>
                {
                    action(info);
                    return(true);
                });
            }
        }