示例#1
0
        /// <summary>
        /// Gets a Dictionary of <see cref="IIdentifiableMutableObject"/> alongside any cross references they declare that could not be found in the set of
        ///     <paramref name="beans"/>
        ///     provided, and the <paramref name="retrievalManager"/> (if given).
        ///     <p/>
        ///     <b>NOTE :</b>An empty Map is returned if all cross references are present.
        /// </summary>
        /// <param name="beans">
        /// - the objects to return the Map of missing references for
        /// </param>
        /// <param name="numberLevelsDeep">
        /// references, an argument of 0 (zero) implies there is no limit, and the resolver engine will continue re-cursing  until it has found every directly and indirectly referenced
        /// </param>
        /// <param name="retrievalManager">
        /// - Used to resolve the structure references. Can be null, if supplied this is used to resolve any references that do not exist in the supplied beans
        /// </param>
        /// <returns>
        /// Map of IIdentifiableMutableObject with a Set of CrossReferences that could not be resolved for the IIdentifiableMutableObject - an empty Map is returned if all cross references are present
        /// </returns>
        public MaintainableReferenceDictionary GetMissingCrossReferences(
            IMutableObjects beans, int numberLevelsDeep, Func <IStructureReference, IMaintainableMutableObject> retrievalManager)
        {
            var missingReferences = new MaintainableReferenceDictionary();

            this.ResolveReferencesInternal(beans, numberLevelsDeep, retrievalManager, missingReferences);
            return(missingReferences);
        }
 /// <summary>
 /// Gets a Dictionary of <see cref="IIdentifiableMutableObject"/> alongside any cross references they declare that could not be found in the set of
 ///     <paramref name="beans"/>
 ///     provided, and the <paramref name="retrievalManager"/> (if given).
 ///     <p/>
 ///     <b>NOTE :</b>An empty Map is returned if all cross references are present.
 /// </summary>
 /// <param name="beans">
 /// - the objects to return the Map of missing references for
 /// </param>
 /// <param name="numberLevelsDeep">
 /// references, an argument of 0 (zero) implies there is no limit, and the resolver engine will continue re-cursing  until it has found every directly and indirectly referenced
 /// </param>
 /// <param name="retrievalManager">
 /// - Used to resolve the structure references. Can be null, if supplied this is used to resolve any references that do not exist in the supplied beans
 /// </param>
 /// <returns>
 /// Map of IIdentifiableMutableObject with a Set of CrossReferences that could not be resolved for the IIdentifiableMutableObject - an empty Map is returned if all cross references are present
 /// </returns>
 public MaintainableReferenceDictionary GetMissingCrossReferences(
     IMutableObjects beans, int numberLevelsDeep, Func<IStructureReference, IMaintainableMutableObject> retrievalManager)
 {
     var missingReferences = new MaintainableReferenceDictionary();
     this.ResolveReferencesInternal(beans, numberLevelsDeep, retrievalManager, missingReferences);
     return missingReferences;
 }