public static bool AddObjectDependency(WeakReference weakRefDp, object objToHold) { ObjectDependencyManager.CleanUp(); if (objToHold == null) { throw new ArgumentNullException("objToHold", "The objToHold cannot be null"); } if (objToHold.GetType() == typeof(WeakReference)) { throw new ArgumentException("objToHold cannot be type of WeakReference", "objToHold"); } if (weakRefDp.Target == objToHold) { throw new InvalidOperationException("The WeakReference.Target cannot be the same as objToHold"); } bool result = false; if (!ObjectDependencyManager.internalList.ContainsKey(objToHold)) { List <WeakReference> value = new List <WeakReference> { weakRefDp }; ObjectDependencyManager.internalList.Add(objToHold, value); result = true; } else { List <WeakReference> list = ObjectDependencyManager.internalList[objToHold]; if (!list.Contains(weakRefDp)) { list.Add(weakRefDp); result = true; } } return(result); }
public static void CleanUp() { ObjectDependencyManager.CleanUp(null); }