System.Deployment.Internal.Isolation.StoreTransaction.Dispose C# (CSharp) Méthode

Dispose() private méthode

private Dispose ( bool fDisposing ) : void
fDisposing bool
Résultat void
        private void Dispose(bool fDisposing)
        {
            if (fDisposing)
            {
                GC.SuppressFinalize(this);
            }
            StoreTransactionOperation[] operationArray = this._storeOps;
            this._storeOps = null;
            if (operationArray != null)
            {
                for (int i = 0; i != operationArray.Length; i++)
                {
                    StoreTransactionOperation operation = operationArray[i];
                    if (operation.Data.DataPtr != IntPtr.Zero)
                    {
                        switch (operation.Operation)
                        {
                            case StoreTransactionOperationType.SetCanonicalizationContext:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationSetCanonicalizationContext));
                                break;

                            case StoreTransactionOperationType.StageComponent:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationStageComponent));
                                break;

                            case StoreTransactionOperationType.PinDeployment:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationPinDeployment));
                                break;

                            case StoreTransactionOperationType.UnpinDeployment:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationUnpinDeployment));
                                break;

                            case StoreTransactionOperationType.StageComponentFile:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationStageComponentFile));
                                break;

                            case StoreTransactionOperationType.InstallDeployment:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationInstallDeployment));
                                break;

                            case StoreTransactionOperationType.UninstallDeployment:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationUninstallDeployment));
                                break;

                            case StoreTransactionOperationType.SetDeploymentMetadata:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationSetDeploymentMetadata));
                                break;

                            case StoreTransactionOperationType.Scavenge:
                                Marshal.DestroyStructure(operation.Data.DataPtr, typeof(StoreOperationScavenge));
                                break;
                        }
                        Marshal.FreeCoTaskMem(operation.Data.DataPtr);
                    }
                }
            }
        }