Uso de CustomImplementationFactory para crear implementación personalizada de Memory Stream

Escenarios de uso posibles

Aspose.Cells ha proporcionado una API llamada CellsHelper.CustomImplementationFactory que permite al usuario proporcionar una implementación personalizada, como usar una implementación de memoria reciclable en lugar de MemoryStream predeterminado.

Uso de CustomImplementationFactory para crear implementación personalizada de Memory Stream

El siguiente código de ejemplo ilustra cómo hacer uso de CellsHelper.CustomImplementationFactory en su programa. A veces, hay suficiente memoria en su sistema pero la memoria no es contigua. Los objetos de Memory Stream utilizan memoria contigua, pero puede proporcionar la implementación de Memory Stream de tal manera que use la memoria no contigua en su lugar.

Código de muestra

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Implement CustomImplementationFactory - CELLSNET-45461
public class MM : CustomImplementationFactory
{
RecyclableMemoryStreamManager manager = new RecyclableMemoryStreamManager();
public override MemoryStream CreateMemoryStream()
{
return manager.GetStream("MM");
}
public override MemoryStream CreateMemoryStream(int capacity)
{
return manager.GetStream("MM", capacity);
}
}
//----------------------------------------
//----------------------------------------
//Assign implementation instance of CustomImplementationFactory
CellsHelper.CustomImplementationFactory = new MM();
//Light cells data handler implementation
LightCellsDataHandlerVisitCells v = new LightCellsDataHandlerVisitCells();
//Create workbook object
Workbook wb = new Workbook(sourceDir, new LoadOptions() { MemorySetting = MemorySetting.MemoryPreference, LightCellsDataHandler = v });
//Print miscellaneous data
Console.WriteLine("Total sheets: " + wb.Worksheets.Count + ", cells: " + v.CellCount + ", strings: " + v.StringCount + ", formulas: " + v.FormulaCount);