public void AliveItemsToList_ShouldReturnAllAliveItems() { var list = new object[] { new object(), new object(), new object() }; var wrc = new WeakReferenceCollection<object>(); var obj1 = new object(); wrc.Add(obj1); foreach (object obj in list) { wrc.Add(obj); } var obj2 = new object(); wrc.Add(obj2); Assert.AreEqual(list.Length + 2, wrc.AliveItemsToList().Count, "Should have same number of items!"); obj1 = obj2 = null; GC.Collect(); GC.WaitForPendingFinalizers(); var aliveItems = wrc.AliveItemsToList(); Assert.AreEqual(list.Length, aliveItems.Count, "Should have 2 less items!"); Assert.AreEqual(list[0], aliveItems[0]); Assert.AreEqual(list[1], aliveItems[1]); Assert.AreEqual(list[2], aliveItems[2]); }
public static IPooledObject GetInstanceFromPool(Type serviceType) { if (!serviceType.GetInterfaces().Contains(typeof(IPooledObject))) { throw new InvalidCastException("InstanceType must implement Artech.WCFExtensions.IPooledInstance"); } if (!ServiceInstancePool.ContainsKey(serviceType)) { ServiceInstancePool[serviceType] = new WeakReferenceCollection(); } WeakReferenceCollection instanceReferenceList = ServiceInstancePool[serviceType]; lock (serviceType) { IPooledObject serviceInstance = null; foreach (WeakReference weakReference in instanceReferenceList) { serviceInstance = weakReference.Target as IPooledObject; if (serviceInstance != null && !serviceInstance.IsBusy) { serviceInstance.IsBusy = true; return(serviceInstance); } } serviceInstance = Activator.CreateInstance(serviceType) as IPooledObject; serviceInstance.IsBusy = true; instanceReferenceList.Add(new WeakReference(serviceInstance)); return(serviceInstance); } }
public void WeakReferenceCollection_Add() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <string>(); verify.ArgumentNullException("item", () => result.Add(null)); } }
public void WeakReferenceCollection_Add() { using (var verify = new Verify()) { var result = new WeakReferenceCollection<string>(); verify.ArgumentNullException("item", () => result.Add(null)); } }
static void Main(string[] args) { Dictionary <string, WeakReferenceCollection> list = new System.Collections.Generic.Dictionary <string, WeakReferenceCollection>(); int count = 0; while (true) { WeakReferenceCollection wc = new WeakReferenceCollection(); list.Add(count.ToString(), wc); count++; wc.Add(new WeakReference(new A() { Name = "Jim" })); wc.Add(new WeakReference(new A() { Name = "Tom" })); wc.Add(new WeakReference(new A() { Name = "Will" })); object obj = new object(); wc.Add(new WeakReference(obj)); obj = null; GC.Collect(); string name = (wc.First().Target as A).Name; string str = "[amount] = [100.1m] and [committed] >= [20.0m]"; string pattern1 = @"\[\d+\.\d+m\]"; MatchEvaluator evaluator = new MatchEvaluator(test); string result = Regex.Replace(str, pattern1, evaluator, RegexOptions.IgnoreCase); string tt = ((OfferSide)3).ToString(); OfferSide aa; bool bb = Enum.TryParse <OfferSide>("3", out aa); bool cc = Enum.IsDefined(typeof(OfferSide), aa); } Console.ReadKey(); }
public void WeakReferenceCollection_CopyTo_Test2() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <string>(); result.Add(""); var array = new string[0]; verify.ArgumentException("array", () => result.CopyTo(array, 0), "array is too small"); } }
public void WeakReferenceCollection_CopyTo_Test5() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <string>(); result.Add(""); var array = new string[0]; verify.ArgumentOutOfRangeException("arrayIndex", -1, () => result.CopyTo(array, -1)); } }
public void WeakReferenceCollection_CopyTo_Test3() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <string>(); result.Add("AAA"); var array = new string[1]; result.CopyTo(array, 0); verify.ItemsAreEqual(new[] { "AAA" }, array, ""); } }
public void AliveItemsToList_ShouldReturnAllItems() { var list = new object[] {new object(), new object(), new object()}; var wrc = new WeakReferenceCollection<object>(); foreach (object obj in list) { wrc.Add(obj); } Assert.AreEqual(list.Length, wrc.AliveItemsToList().Count, "Should have same number of items!"); }
public void WeakReferenceCollection_Remove_Test2() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <Foo>(); Action add = () => result.Add(new Foo()); add(); Memory.CycleGC(); var f = new Foo(); result.Add(f); result.Add(f); result.Remove(f); result.Remove(f); result.CleanUp(); verify.IsEmpty(result, ""); } }
public void Remove_ObjectShouldGetRemoved() { var obj = new object(); var wrc = new WeakReferenceCollection<object>(); wrc.Add(obj); Assert.AreEqual(1, wrc.AliveItemsToList().Count, "Should have 1 item!"); wrc.Remove(obj); Assert.AreEqual(0, wrc.AliveItemsToList().Count, "Should have 0 item!"); }
/// <summary> /// Adds a weak event handler. /// </summary> /// <param name="eventHandler"></param> public void AddHandler(IListener <T> eventHandler) { if (eventHandler == null) { throw new ArgumentNullException(nameof(eventHandler), $"{nameof(eventHandler)} is null."); } m_Targets.Add(eventHandler); if (!m_Listening) { AttachToEvent(); m_Listening = true; } }
public void WeakReferenceCollection_Remove_Test2() { using (var verify = new Verify()) { var result = new WeakReferenceCollection <Foo>(); #pragma warning disable IDE0039 // Use local function Action add = () => result.Add(new Foo()); #pragma warning restore IDE0039 // Use local function add(); Memory.CycleGC(); var f = new Foo(); result.Add(f); result.Add(f); result.Remove(f); result.Remove(f); result.CleanUp(); verify.IsEmpty(result, ""); } }
public void Write(string cacheKey, object value, CachePolicy policy) { lock (SyncRoot) { foreach (var item in m_Cache) { if (item.Item1 == cacheKey) { m_Cache.Remove(item); break; } } m_Cache.Add(new Tuple <string, object>(cacheKey, value)); } }
public void Add_ObjectShouldGetCollected() { var obj = new object(); var wrc = new WeakReferenceCollection<object>(); wrc.Add(obj); var wr = new WeakReference(obj); obj = null; Assert.IsNotNull(wr.Target, "Object should NOT have been collected yet!"); GC.Collect(); GC.WaitForPendingFinalizers(); Assert.IsNull(wr.Target, "Object should have been collected!"); GC.KeepAlive(wrc); }
public void WeakReferenceCollection_CopyTo_Test2() { using (var verify = new Verify()) { var result = new WeakReferenceCollection<string>(); result.Add(""); var array = new string[0]; verify.ArgumentException("array", () => result.CopyTo(array, 0), "array is too small"); } }
public void AddPartToUnindex(PartManager partManager) { _partsToUnindex.Add(partManager); }
public void WeakReferenceCollection_CopyTo_Test5() { using (var verify = new Verify()) { var result = new WeakReferenceCollection<string>(); result.Add(""); var array = new string[0]; verify.ArgumentOutOfRangeException("arrayIndex", -1, () => result.CopyTo(array, -1)); } }
public void WeakReferenceCollection_CopyTo_Test3() { using (var verify = new Verify()) { var result = new WeakReferenceCollection<string>(); result.Add("AAA"); var array = new string[1]; result.CopyTo(array, 0); verify.ItemsAreEqual(new[] { "AAA" }, array, ""); } }
public void WeakReferenceCollection_Remove_Test2() { using (var verify = new Verify()) { var result = new WeakReferenceCollection<Foo>(); Action add = () => result.Add(new Foo()); add(); Memory.CycleGC(); var f = new Foo(); result.Add(f); result.Add(f); result.Remove(f); result.Remove(f); result.CleanUp(); verify.IsEmpty(result, ""); } }