Användning av CustomImplementationFactory för att skapa anpassad implementering av minneström

Möjliga användningsscenario

Aspose.Cells har tillhandahållit ett API som heter CellsHelper.CustomImplementationFactory som gör det möjligt för användaren att tillhandahålla anpassad implementation såsom att använda återvinningsbar minnesimplementation istället för standard MemoryStream.

Användning av CustomImplementationFactory för att skapa anpassad implementation av Memory Stream

Följande exempelkod illustrerar hur man använder CellsHelper.CustomImplementationFactory i ditt program. Ibland finns det tillräckligt med minne i ditt system, men minnet är inte sammanhängande. Minaströmsobjekt använder sammanhängande minne, men du kan tillhandahålla implementationen av Minaström på ett sådant sätt att den istället använder ickesammanhängande minne.

Exempelkod

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