Beispiel #1
0
        static internal IObject CreateFactoryObject(ClassFactory classFactory, ObjectAdapter objectAdapter)
        {
            CommandAdapter commandModelAdapter = objectAdapter as CommandAdapter;

            if (commandModelAdapter != null)
            {
                return(CreateCommandModel(classFactory, commandModelAdapter));
            }
            AsyncOperationAdapter asyncOperationAdapter = objectAdapter as AsyncOperationAdapter;

            if (asyncOperationAdapter != null)
            {
                return(CreateAsyncOperation(classFactory, asyncOperationAdapter));
            }

            ObservableCollectionAdapter collectionModelAdapter = objectAdapter as ObservableCollectionAdapter;

            if (collectionModelAdapter != null)
            {
                return(CreateCollectionModel(classFactory, collectionModelAdapter));
            }

            ObservableObjectAdapter propertyModelAdapter = objectAdapter as ObservableObjectAdapter;

            if (propertyModelAdapter != null)
            {
                return(new ObservableObject(propertyModelAdapter, classFactory));
            }

            ObjectDispatchAdapter propertyDataAdapter = objectAdapter as ObjectDispatchAdapter;

            if (propertyDataAdapter != null)
            {
                return(new ObjectDispatch <ObjectDispatchAdapter>(propertyDataAdapter, classFactory));
            }

            return(new Object <ObjectAdapter>(objectAdapter));
        }
Beispiel #2
0
        public T ActivateObject <T>(Guid iidType, object context)
        {
            ObjectAdapter objectAdapter = ObjectStaticsUtil.ActivateObject(iidType, ToAdapter(context));

            return(GetOrCreateObject(objectAdapter).AssertCast <T>());
        }
Beispiel #3
0
        private static ulong GetUniqueId(ObjectAdapter objectAdapter)
        {
            ulong processId = objectAdapter.ProcessId;

            return((processId << 32) + objectAdapter.UniqueId);
        }