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