private void Initialize() { if (_initilized) { return; } lock (_initializeLock) { if (_initilized) { return; } // до получения нормальных SysObject-ов подсовываем фиктивные WMSBusinessObjectTypeDescriptonProvider.AddTypeDescriptor(typeof(SysObject), new StubTypeDescriptor(typeof(SysObject))); WMSBusinessObjectTypeDescriptonProvider.AddTypeDescriptor(typeof(SysObjectExt), new StubTypeDescriptor(typeof(SysObjectExt))); base.GetAll(); _initilized = true; // заменяем фиктивные на нормальные WMSBusinessObjectTypeDescriptonProvider.AddTypeDescriptor(typeof(SysObject), GetTypeDescriptor(typeof(SysObject))); WMSBusinessObjectTypeDescriptonProvider.AddTypeDescriptor(typeof(SysObjectExt), GetTypeDescriptor(typeof(SysObjectExt))); } }
private void ClearCacheInternal() { // чистим внутренние объекты _typesCache.Clear(); // чистим кэши в поставщике описаний _initilized = false; WMSBusinessObjectTypeDescriptonProvider.ClearCache(); // заново инициализируем Initialize(); }