Använder CustomImplementationFactory för att skapa anpassad implementering av Memory Stream
Contents
[
Hide
]
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
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); |