/// <summary>
        /// See <see cref="IBuilderStrategy.BuildUp"/> for more information.
        /// </summary>
        public override object BuildUp(IBuilderContext context, Type typeToBuild, object existing, string idToBuild)
        {
            WorkItem workItem = context.Locator.Get<WorkItem>(new DependencyResolutionLocatorKey(typeof(WorkItem), null));
            ObjectBuiltNotificationPolicy.ItemNotification notification;

            if (policy == null)
                policy = context.Policies.Get<ObjectBuiltNotificationPolicy>(null, null);

            if (workItem != null && !Object.ReferenceEquals(workItem, existing) && policy.AddedDelegates.TryGetValue(workItem, out notification))
                notification(existing);

            return base.BuildUp(context, typeToBuild, existing, idToBuild);
        }
        /// <summary>
        /// See <see cref="IBuilderStrategy.BuildUp"/> for more information.
        /// </summary>
        public override object BuildUp(IBuilderContext context, Type typeToBuild, object existing, string idToBuild)
        {
            WorkItem workItem = context.Locator.Get <WorkItem>(new DependencyResolutionLocatorKey(typeof(WorkItem), null));

            ObjectBuiltNotificationPolicy.ItemNotification notification;

            if (policy == null)
            {
                policy = context.Policies.Get <ObjectBuiltNotificationPolicy>(null, null);
            }

            if (workItem != null && !Object.ReferenceEquals(workItem, existing) && policy.AddedDelegates.TryGetValue(workItem, out notification))
            {
                notification(existing);
            }

            return(base.BuildUp(context, typeToBuild, existing, idToBuild));
        }