예제 #1
0
        private static void _RegisterTSLStorageExtension(IGenericCellOperations genericCellOps, IStorageSchema storageSchema)
        {
            if (genericCellOps == null)
            {
                throw new ArgumentNullException("genericCellOps");
            }
            if (storageSchema == null)
            {
                throw new ArgumentNullException("storageSchema");
            }
            if (genericCellOps.GetType().Assembly != storageSchema.GetType().Assembly)
            {
                throw new ArgumentException("Components being registered are from different storage extensions.");
            }


            if (storageSchema is IStorageSchemaUpdateNotifier notifier)
            {
                notifier.StorageSchemaUpdated += StorageSchemaUpdated;
            }

            EventRaiser.RaiseStorageEvent(StorageSchemaUpdated, nameof(StorageSchemaUpdated));

            if (storage_schema is IStorageSchemaUpdateNotifier old_notifier)
            {
                old_notifier.StorageSchemaUpdated -= StorageSchemaUpdated;
            }

            generic_cell_ops = genericCellOps;
            storage_schema   = storageSchema;
        }