namespace NHibernate.Util { /// <summary> /// Various small helper methods. /// </summary> public static class ObjectHelpers { /// <summary> /// Return an identifying string representation for the object, taking /// NHibernate proxies into account. The returned string will be "null", /// "classname@hashcode(hash)", or "entityname#identifier". If the object /// is an uninitialized NHibernate proxy, take care not to initialize it. /// </summary> public static string IdentityToString(object obj) { if (obj == null) { return "null"; } var proxy = obj as Proxy.INHibernateProxy; if (null != proxy) { var init = proxy.HibernateLazyInitializer; return StringHelper.Unqualify(init.EntityName) + "#" + init.Identifier; } return StringHelper.Unqualify(obj.GetType().FullName) + "@" + obj.GetHashCode() + "(hash)"; } } }