Uso de CustomImplementationFactory para crear una implementación personalizada de Memory Stream
Contents
[
Hide
]
Posibles escenarios de uso
Aspose.Cells ha proporcionado un API llamadoCellsHelper.CustomImplementationFactorylo que permite al usuario proporcionar una implementación personalizada, como el uso de la implementación de memoria reciclable en lugar del MemoryStream predeterminado.
Uso de CustomImplementationFactory para crear una implementación personalizada de Memory Stream
El siguiente código de ejemplo ilustra cómo hacer uso deCellsHelper.CustomImplementationFactoryen tu programa A veces, hay suficiente memoria en su sistema pero la memoria no es contigua. Los objetos de Memory Stream usan 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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); |