Example #1
0
        public void HierarchicalLifetimeManager_Child_Not_Equal_To_Parent()
        {
            // Create parent container
            IUnityContainer parentCtr = new UnityContainer();

            // Register type in parent container
            parentCtr.RegisterType <MyObject>(new HierarchicalLifetimeManager());

            // Create nested child container in parent container
            IUnityContainer childCtr = parentCtr.CreateChildContainer();

            MyObject parentObject1 = parentCtr.Resolve <MyObject>();
            MyObject parentObject2 = parentCtr.Resolve <MyObject>();

            Assert.That(parentObject2.GetHashCode(), Is.EqualTo(parentObject1.GetHashCode()), "paren1 != parent2");

            MyObject childObject = childCtr.Resolve <MyObject>();

            Assert.That(childObject.GetHashCode(), Is.Not.EqualTo(parentObject1.GetHashCode()), "child != parent");

            // Dispose child container
            childCtr.Dispose();

            // Dispose parent container
            parentCtr.Dispose();
        }
Example #2
0
    static void Main(string[] args)
    {
        MyObject a1 = null, a2 = null;

        MyObject.Create(i => a1 = i);
        MyObject.Create(i => a2 = i);
        Console.WriteLine("a1 hashcode:" + a1.GetHashCode());     // 46104728
        Console.WriteLine("a2 hashcode:" + a2.GetHashCode());     // 12289376
        a1.SwapWith(a2);
        Console.WriteLine("a1 hashcode:" + a1.GetHashCode());     // 12289376
        Console.WriteLine("a2 hashcode:" + a2.GetHashCode());     // 46104728
    }
Example #3
0
        public void TestAnObjectHashcode()
        {
            // create string object
            object myObj = new MyObject();

            Assert.AreEqual(typeof(object), myObj.GetHashCode().GetType());
        }
Example #4
0
        public void TestObjectsHasUniqueId()
        {
            // create string object
            object myObj  = new MyObject();
            object myObj2 = new MyObject();

            Assert.IsTrue(myObj.GetHashCode() == myObj2.GetHashCode());
        }
Example #5
0
 public override int GetHashCode()
 {
     if (Root != null)
     {
         return(MyObject != null
             ? (Root, MyObject).GetHashCode()
             : Root.GetHashCode());
     }
     return(MyObject != null?MyObject.GetHashCode() : 0);
 }
Example #6
0
        public override int GetHashCode()
        {
            if (Root != null)
            {
                return(MyObject?.GetHashCode() ?? 0);
            }

            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
            return(base.GetHashCode());
        }