public MultiPathObserver([NotNull] object source, [NotNull] IBindingPath path, bool ignoreAttachedMembers)
     : base(source, path)
 {
     Should.BeSupported(!path.IsEmpty, "The MultiPathObserver doesn't support the empty path members.");
     _listeners             = new List <IDisposable>(path.Parts.Count - 1);
     _ignoreAttachedMembers = ignoreAttachedMembers;
     _lastMemberListener    = new LastMemberListener(ServiceProvider.WeakReferenceFactory(this));
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="MultiPathObserver" /> class.
 /// </summary>
 public MultiPathObserver([NotNull] object source, [NotNull] IBindingPath path, bool ignoreAttachedMembers)
     : base(source, path)
 {
     Should.BeSupported(!path.IsEmpty, "The MultiPathObserver doesn't support the empty path members.");
     _listeners = new List<IDisposable>(path.Parts.Count - 1);
     _ignoreAttachedMembers = ignoreAttachedMembers;
     _members = UnsetBindingPathMembers.Instance;
     _lastMemberListener = new LastMemberListener(ServiceProvider.WeakReferenceFactory(this));
     Initialize(this);
 }
 public MultiPathObserver([NotNull] object source, [NotNull] IBindingPath path, bool ignoreAttachedMembers, bool hasStablePath, bool observable, bool optional)
     : base(source, path)
 {
     Should.BeSupported(!path.IsEmpty, "The MultiPathObserver doesn't support the empty path members.");
     _listeners = new List<IDisposable>(path.Parts.Count - 1);
     _ignoreAttachedMembers = ignoreAttachedMembers;
     _lastMemberListener = new LastMemberListener(ServiceProvider.WeakReferenceFactory(this));
     _hasStablePath = hasStablePath;
     _observable = observable;
     _optional = optional;
 }