On 28.02.2011 14:55, eng. Ahmed Youssef wrote: > But it doesn't behave this way under .net. > It doesn't dispose the stream.
Please file a bug at http://mono-project.com/Bugs. MS.NET is actually only closing part streams (as documented), while Mono is closing the underlying package stream as well, which is not documented. Robert > > On Mon, Feb 28, 2011 at 3:26 PM, Rafael Teixeira<[email protected]> wrote: > >> That is the documented (expected) behavior of Close: >> >> "Saves and closes the package plus all underlying part streams." >> See >> http://msdn.microsoft.com/en-us/library/system.io.packaging.package.close.aspx >> >> And that is a common pattern in all reader/writer classes in .NET. >> >> Hope it clarifies it all, >> >> Rafael "Monoman" Teixeira >> --------------------------------------- >> "The most exciting phrase to hear in science, the one that heralds new >> discoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'" >> Isaac Asimov >> US science fiction novelist& scholar (1920 - 1992) >> >> >> >> On Sat, Feb 26, 2011 at 9:04 AM, eng. Ahmed Youssef<[email protected]>wrote: >> >>> Hello everyone, >>> >>> Sorry for the late reply but I thought I do my homework first... >>> >>> After moving to mono 2.10 on opensuse, I managed to make the library work >>> on mono. >>> The problem was with this scenario: >>> >>> using System; >>> using System.IO.Packaging; >>> using System.IO; >>> >>> namespace test >>> { >>> class MainClass >>> { >>> public static void Main (string[] args) >>> { >>> MemoryStream stream = new MemoryStream (); >>> Package p = Package.Open (stream, FileMode.Create, FileAccess.ReadWrite); >>> p.Close (); >>> stream.ReadByte(); >>> } >>> } >>> } >>> >>> throws this exception: >>> >>> Unhandled Exception: System.ObjectDisposedException: The object was used >>> after being disposed. >>> at System.IO.MemoryStream.CheckIfClosedThrowDisposed () [0x00000] in >>> /usr/src/packages/BUILD/mono-2.10/mcs/class/corlib/System.IO/MemoryStream.cs:133 >>> at System.IO.MemoryStream.ReadByte () [0x00000] in >>> /usr/src/packages/BUILD/mono-2.10/mcs/class/corlib/System.IO/MemoryStream.cs:261 >>> at test.MainClass.Main (System.String[] args) [0x00000] in<filename >>> unknown>:0 >>> >>> >>> the package.Close call internally makes this: >>> >>> public void Close() >>> { >>> this.Flush(); >>> this.Dispose(1); >>> } >>> >>> for some reason the dispose call disposes the stream too.... >>> >>> After replacing the package.Close() with package.Flush().... the EPPlus >>> lib works nicely.... >>> >>> I hope that is useful... I don't mind digging into the issue more but I am >>> not sure how to do that.... any info would be appreciated. >>> I hope you confirm that it is a mono issue and that it will be fixed so >>> that either mono is fixed or the library... >>> >>> Thank you all for the help. >>> >>> >>> On Tue, Feb 22, 2011 at 7:11 PM, jmalcolm<[email protected]>wrote: >>> >>>> >>>> I am not sure how big the spreadsheets are that you need to work with but >>>> I >>>> have used the free version of GemBox to great effect: >>>> >>>> http://www.gemboxsoftware.com/GBSpreadsheetFree.htm >>>> -- >>>> View this message in context: >>>> http://mono.1490590.n4.nabble.com/creating-excel-files-tp3315324p3319632.html >>>> Sent from the Mono - Dev mailing list archive at Nabble.com. >>>> _______________________________________________ >>>> Mono-devel-list mailing list >>>> [email protected] >>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>> >>> >>> >>> _______________________________________________ >>> Mono-devel-list mailing list >>> [email protected] >>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>> >>> >> > > > > _______________________________________________ > Mono-devel-list mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/mono-devel-list _______________________________________________ Mono-devel-list mailing list [email protected] http://lists.ximian.com/mailman/listinfo/mono-devel-list
