Özel Uygulama Fabrikası kullanarak Bellek Akışı nın özel uygulamasını oluşturmak
Olası Kullanım Senaryoları
Aspose.Cells, CellsHelper.CustomImplementationFactory adında bir API sağlamıştır. Bu API, varsayılan MemoryStream yerine Geri Dönüştürülebilir bellek uygulamasını kullanarak özel uygulama sağlama imkanı sunar.
Özel Uygulama Fabrikası kullanarak Bellek Akışı’nın özel uygulamasını oluşturmak
Aşağıdaki örnek kod, programınızda CellsHelper.CustomImplementationFactory kullanımını göstermektedir. Bazen sistemde yeterli bellek olabilir fakat bellek arka arkaya değildir. Bellek Akışı nesneleri ardışık bellek kullanır ancak Bellek Akışı’nın uygulamasını öyle bir şekilde sağlayabilirsiniz ki bunun yerine ardışık olmayan bellek kullanır.
Örnek Kod
// 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); |