Använder CustomImplementationFactory för att skapa anpassad implementering av Memory Stream

Möjliga användningsscenarier

Aspose.Cells har angett en API namngivenCellsHelper.CustomImplementationFactoryvilket gör det möjligt för användaren att tillhandahålla anpassad implementering som att använda återvinningsbart minnesimplementering istället för standard MemoryStream.

Använder CustomImplementationFactory för att skapa anpassad implementering av Memory Stream

Följande exempelkod illustrerar hur du använderCellsHelper.CustomImplementationFactoryi ditt program. Ibland finns det tillräckligt med minne i ditt system men minnet är inte sammanhängande. Memory Stream-objekt använder sammanhängande minne men du kan tillhandahålla implementeringen av Memory Stream på ett sådant sätt att det använder det icke-sammanhängande minnet istället,

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