Verwenden von CustomImplementationFactory zum Erstellen einer benutzerdefinierten Implementierung von Memory Stream
Contents
[
Hide
]
Mögliche Nutzungsszenarien
Aspose.Cells hat eine API mit dem Namen bereitgestelltCellsHelper.CustomImplementationFactoryDadurch kann der Benutzer eine benutzerdefinierte Implementierung bereitstellen, z. B. die Verwendung einer recyclebaren Speicherimplementierung anstelle des Standard-MemoryStream.
Verwenden von CustomImplementationFactory zum Erstellen einer benutzerdefinierten Implementierung von Memory Stream
Der folgende Beispielcode veranschaulicht die Verwendung vonCellsHelper.CustomImplementationFactoryin deinem Programm. Manchmal ist in Ihrem System genügend Speicher vorhanden, aber der Speicher ist nicht zusammenhängend. Memory Stream-Objekte verwenden zusammenhängenden Speicher, aber Sie können die Implementierung von Memory Stream so bereitstellen, dass stattdessen der nicht zusammenhängende Speicher verwendet wird.
Beispielcode
This file contains hidden or 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); |