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))); } }