public static void Init() { // Hack: Internal property needs to be reset PageTypeResolverInstanceProperty.SetValue(null, null, null); Initializer.Start(); if (!_firstInit) { var synchronizer = new PageTypeSynchronizer(new PageTypeDefinitionLocator(), new PageTypeBuilderConfiguration()); // HACK: Requried because SynchronizePageTypes is internal. SynchronzePageTypesMethod.Invoke(synchronizer, new object[0]); } _firstInit = false; }
public void Initialize(InitializationEngine context) { var assemblyLocator = new AppDomainAssemblyLocator(); var pageTypeLocator = new PageTypeLocator(new PageTypeFactory()); var pageTypeDefinitionLocator = new PageTypeDefinitionLocator( assemblyLocator); var pageTypeUpdater = new PageTypeUpdater( pageTypeDefinitionLocator, new PageTypeFactory(), new PageTypeValueExtractor(), pageTypeLocator); var globalPropertySettingsLocator = new GlobalPropertySettingsLocator(assemblyLocator); var propertySettingsRepository = new PropertySettingsRepository(); var pageTypePropertyUpdater = new PageTypePropertyUpdater( new PageDefinitionFactory(), new PageDefinitionTypeFactory(), new TabFactory(), propertySettingsRepository, globalPropertySettingsLocator); var tabDefinitionUpdater = new TabDefinitionUpdater(new TabFactory()); var tabLocator = new TabLocator(assemblyLocator); PageTypeSynchronizer synchronizer = new PageTypeSynchronizer( pageTypeDefinitionLocator, Configuration, pageTypePropertyUpdater, new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeFactory())), PageTypeResolver.Instance, pageTypeLocator, pageTypeUpdater, tabDefinitionUpdater, tabLocator, new GlobalPropertySettingsSynchronizer(propertySettingsRepository, globalPropertySettingsLocator)); synchronizer.SynchronizePageTypes(); DataFactory.Instance.LoadedPage += DataFactory_LoadedPage; DataFactory.Instance.LoadedChildren += DataFactory_LoadedChildren; DataFactory.Instance.LoadedDefaultPageData += DataFactory_LoadedPage; }