Использование CustomImplementationFactory для создания пользовательской реализации Memory Stream
Contents
[
Hide
]
Возможные сценарии использования
Aspose.Cells предоставил имя APICellsHelper.CustomImplementationFactoryкоторый позволяет пользователю предоставить пользовательскую реализацию, такую как использование реализации Recyclable memory вместо MemoryStream по умолчанию.
Использование CustomImplementationFactory для создания пользовательской реализации Memory Stream
В следующем примере кода показано, как использоватьCellsHelper.CustomImplementationFactoryв вашей программе. Иногда в вашей системе достаточно памяти, но память не является непрерывной. Объекты Memory Stream используют непрерывную память, но вы можете реализовать реализацию Memory Stream таким образом, чтобы вместо этого он использовал несмежную память.
Образец кода
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); |