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