public DomainObject CreateObjectReference(IObjectInitializationContext objectInitializationContext, ClientTransaction clientTransaction) { ArgumentUtility.CheckNotNull("objectInitializationContext", objectInitializationContext); ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction); var objectID = objectInitializationContext.ObjectID; CheckDomainTypeAndClassDefinition(objectID.ClassDefinition.ClassType); objectID.ClassDefinition.ValidateCurrentMixinConfiguration(); var concreteType = Pipeline.ReflectionService.GetAssembledType(objectID.ClassDefinition.ClassType); var instance = (DomainObject)FormatterServices.GetSafeUninitializedObject(concreteType); Pipeline.ReflectionService.PrepareExternalUninitializedObject(instance, InitializationSemantics.Construction); // These calls are normally performed by DomainObject's ctor instance.Initialize(objectID, objectInitializationContext.RootTransaction); objectInitializationContext.RegisterObject(instance); using (clientTransaction.EnterNonDiscardingScope()) { instance.RaiseReferenceInitializatingEvent(); } return(instance); }
public ObjectInititalizationContextScope(IObjectInitializationContext objectInitializationContext) { ArgumentUtility.CheckNotNull("objectInitializationContext", objectInitializationContext); _previousObjectInitializationContext = s_currentObjectInitializationContext; s_currentObjectInitializationContext = objectInitializationContext; }
public override void SetUp() { base.SetUp(); var remixParticipant = new MixinParticipant(); var restoreParticipant = new DomainObjectParticipant(); _pipeline = SafeServiceLocator.Current.GetInstance <IPipelineFactory>().Create("DomainObjectCreatorTest", remixParticipant, restoreParticipant); var pipelineRegistry = new DefaultPipelineRegistry(_pipeline); _domainObjectCreator = new DomainObjectCreator(pipelineRegistry); _transaction = ClientTransaction.CreateRootTransaction(); _order1InitializationContext = CreateFakeInitializationContext(DomainObjectIDs.Order1, _transaction); var objectID = new ObjectID(typeof(TargetClassForPersistentMixin), Guid.NewGuid()); _targetClassForPersistentMixinInitializationContext = CreateFakeInitializationContext(objectID, _transaction); }
public DomainObject CreateNewObject(IObjectInitializationContext objectInitializationContext, ParamList constructorParameters, ClientTransaction clientTransaction) { ArgumentUtility.CheckNotNull("objectInitializationContext", objectInitializationContext); ArgumentUtility.CheckNotNull("constructorParameters", constructorParameters); ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction); var domainObjectType = objectInitializationContext.ObjectID.ClassDefinition.ClassType; CheckDomainTypeAndClassDefinition(domainObjectType); var classDefinition = MappingConfiguration.Current.GetTypeDefinition(domainObjectType); classDefinition.ValidateCurrentMixinConfiguration(); using (clientTransaction.EnterNonDiscardingScope()) { using (new ObjectInititalizationContextScope(objectInitializationContext)) { var instance = (DomainObject)Pipeline.Create(domainObjectType, constructorParameters, allowNonPublicConstructor: true); DomainObjectMixinCodeGenerationBridge.OnDomainObjectCreated(instance); return(instance); } } }
public DomainObject CreateNewObject(IObjectInitializationContext objectInitializationContext, ParamList constructorParameters, ClientTransaction clientTransaction) { throw new NotSupportedException("ThrowingDomainObjectCreator.CreateNewObject was invoked."); }
public DomainObject CreateObjectReference(IObjectInitializationContext objectInitializationContext, ClientTransaction clientTransaction) { throw new NotSupportedException("ThrowingDomainObjectCreator.CreateObjectReference was invoked."); }
public void SetUp() { _initializationContext = MockRepository.GenerateStub <IObjectInitializationContext>(); }
public void Dispose() { s_currentObjectInitializationContext = _previousObjectInitializationContext; }