diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/RuntimeObjectReference.cs b/src/Spring/Spring.Core/Objects/Factory/Config/RuntimeObjectReference.cs
index 5901e064..c2b686f1 100644
--- a/src/Spring/Spring.Core/Objects/Factory/Config/RuntimeObjectReference.cs
+++ b/src/Spring/Spring.Core/Objects/Factory/Config/RuntimeObjectReference.cs
@@ -1,7 +1,7 @@
#region License
/*
- * Copyright © 2002-2011 the original author or authors.
+ * Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -126,5 +126,42 @@ namespace Spring.Objects.Factory.Config
private bool _isToParent;
#endregion
+
+ #region Equality Members
+
+ ///
+ /// Determines whether the specified RuntimeObjectReference is equal to the current RuntimeObjectReference.
+ ///
+ /// true if the specified RuntimeObjectReference is equal to the current RuntimeObjectReference; otherwise, false.
+ protected bool Equals(RuntimeObjectReference other)
+ {
+ return string.Equals(_objectName, other._objectName) && _isToParent.Equals(other._isToParent);
+ }
+
+ ///
+ /// Determines whether the specified System.Object is equal to the current RuntimeObjectReference.
+ ///
+ /// true if the specified RuntimeObjectReference is equal to the current RuntimeObjectReference; otherwise, false.
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj)) return false;
+ if (ReferenceEquals(this, obj)) return true;
+ if (obj.GetType() != this.GetType()) return false;
+ return Equals((RuntimeObjectReference)obj);
+ }
+
+ ///
+ /// Serves as a hash function for RuntimeObjectReference.
+ ///
+ /// A hash code for the currentRuntimeObjectReference.
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ return (_objectName.GetHashCode() * 397) ^ _isToParent.GetHashCode();
+ }
+ }
+
+ #endregion
}
-}
\ No newline at end of file
+}