Verwendung von CustomImplementationFactory zur Erstellung einer benutzerdefinierten Implementierung des MemoryStream
Mögliche Verwendungsszenarien
Aspose.Cells hat eine API namens CellsHelper.CustomImplementationFactory, die es dem Benutzer ermöglicht, benutzerdefinierte Implementierungen wie die Verwendung der Recyclable-Speicherimplementierung anstelle des Standard-MemoryStream zu verwenden.
Verwendung von CustomImplementationFactory zur Erstellung einer benutzerdefinierten Implementierung des MemoryStream
Der folgende Beispielcode veranschaulicht, wie man CellsHelper.CustomImplementationFactory in Ihrem Programm verwendet. Manchmal gibt es genügend Speicher in Ihrem System, aber der Speicher ist nicht zusammenhängend. MemoryStream-Objekte verwenden zusammenhängenden Speicher, aber Sie können die Implementierung von MemoryStream so bereitstellen, dass sie stattdessen nicht zusammenhängenden Speicher verwendet.
Beispielcode
// 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); |