public void RaisePropertyValueChangingEvent(DomainObject domainObject, PropertyDefinition propertyDefinition, object oldValue, object newValue) { ArgumentUtility.CheckNotNull("domainObject", domainObject); ArgumentUtility.CheckNotNull("propertyDefinition", propertyDefinition); _listenerCollection.PropertyValueChanging(_clientTransaction, domainObject, propertyDefinition, oldValue, newValue); _extensionCollection.PropertyValueChanging(_clientTransaction, domainObject, propertyDefinition, oldValue, newValue); using (EnterScopeOnDemand()) { domainObject.OnPropertyChanging(new PropertyChangeEventArgs(propertyDefinition, oldValue, newValue)); } }