/// <summary> /// Registers the member definitions. /// </summary> /// <param name="memberDefinitions">The member definitions.</param> private void RegisterMemberDefinitions(IEnumerable <IMemberDefinition> memberDefinitions) { lock (Callbacks) { InterceptedMembers = memberDefinitions.ToList(); var members = InterceptedMembers.Where(member => !Callbacks.Contains(member)); members.ForEach(member => Callbacks.Add(member, new CallbackCollection())); } }
/// <summary> /// Adds the specified call back. /// </summary> /// <param name="callback">The callback.</param> /// <exception cref="ArgumentNullException">The <paramref name="callback"/> is <c>null</c>.</exception> private void AddCallBack(Callback callback) { Argument.IsNotNull("callback", callback); lock (InterceptedMembers) { InterceptedMembers.ForEach(member => Callbacks[member].Add(callback)); Register(); } }