/// <summary> /// Releases the entity. An owner can only release an entity /// if it retains it. /// Retain/Release is part of AERC (Automatic Entity Reference Counting) /// and is used internally to prevent pooling retained entities. /// If you use retain manually you also have to /// release it manually at some point. /// </summary> /// <param name="owner"></param> public void Release(object owner) { _aerc.Release(owner); // TODO VD PERFORMANCE // _toStringCache = null; if (_aerc.RetainCount == 0) { OnEntityReleased?.Invoke(this); } }
/// Releases the entity. An owner can only release an entity /// if it retains it. /// Retain/Release is part of AERC (Automatic Entity Reference Counting) /// and is used internally to prevent pooling retained entities. /// If you use retain manually you also have to /// release it manually at some point. public void Release(object owner) { _aerc.Release(owner); _toStringCache = null; if (_aerc.retainCount == 0) { if (OnEntityReleased != null) { OnEntityReleased(this); } } }