Utilisation de CustomImplementationFactory pour créer une implémentation personnalisée de Memory Stream

Scénarios d’utilisation possibles

Aspose.Cells a fourni un API nomméCellsHelper.CustomImplementationFactoryqui permet à l’utilisateur de fournir une implémentation personnalisée telle que l’utilisation de l’implémentation de la mémoire recyclable au lieu du MemoryStream par défaut.

Utilisation de CustomImplementationFactory pour créer une implémentation personnalisée de Memory Stream

L’exemple de code suivant illustre l’utilisation deCellsHelper.CustomImplementationFactorydans votre programme. Parfois, il y a suffisamment de mémoire dans votre système mais la mémoire n’est pas contiguë. Les objets Memory Stream utilisent de la mémoire contiguë mais vous pouvez fournir l’implémentation de Memory Stream de manière à ce qu’il utilise à la place la mémoire non contiguë,

Exemple de code

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