Hi,
I'm using something like this:
Spire.Doc.Document documentA = new Spire.Doc.Document();
documentA.LoadFromFile("My file name");
Spire.Doc.Document documentB = documentA.Clone();
documentA.Dispose();
documentB.Clone();
At the last line, documentB.Clone(), an exception is throwned.
If I do not dispose of the documentA, everything is ok.
However, in my perspective, for the sanitary of my application and the large number of documents that I have to produce, I should really dispose document each time I finished using them.
I like to just have to clone the document instead of having to reload it from IO but I must have to dispose of the original document.
What am I missing?
Here is the stack trace from Spire.doc component:
at Spire.Doc.Formatting.FormatBase.ᜂ(FormatBase A_0)
at Spire.Doc.Formatting.FormatBase.ImportContainer(FormatBase format)
at Spire.Doc.Documents.Style.CloneImpl()
at sprᮽ.ᜋ()
at sprᮽ.ᜊ()
at Spire.Doc.Documents.Style.ᜀ(IStyle A_0, Document A_1)
at Spire.Doc.Documents.Style.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.Collections.StyleCollection.Add(IStyle style)
at Spire.Doc.Documents.Style.ᜁ(Document A_0, Document A_1)
at Spire.Doc.Table.ᜀ(Document A_0, Document A_1)
at Spire.Doc.Table.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.DocumentObject.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.Body.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.DocumentObject.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.Section.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.Collections.DocumentObjectCollection.OnInsert(Int32 index, DocumentObject entity)
at Spire.Doc.Collections.DocumentObjectCollection.Add(IDocumentObject entity)
at Spire.Doc.Collections.DocumentObjectCollection.ᜀ(DocumentObjectCollection A_0)
at Spire.Doc.Document.ImportContent(IDocument doc, Boolean importStyles)
at Spire.Doc.Document..ctor(Document doc)
at Spire.Doc.Document.CloneImpl()
at Spire.Doc.Document.Clone()
Thanks
EDIT:
After doing a couple of tests, I've figured it out the problem occurs when I have a page footer. At least, it's one case.
I've created a new document which I then add a page footer and then BOOM.
I've added the document as an attachment.
But it's not the same exception as my original post.
Here is the new exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Spire.Doc.Documents.Paragraph.ᜀ(Document A_0, Document A_1)
at Spire.Doc.Documents.Paragraph.ᜂ(Document A_0, Document A_1)
at Spire.Doc.Documents.Paragraph.CloneRelationsTo(Document doc, OwnerHolder nextOwner)
at Spire.Doc.Collections.DocumentObjectCollection.OnInsert(Int32 index, DocumentObject entity)
at Spire.Doc.Collections.DocumentObjectCollection.Add(IDocumentObject entity)
at Spire.Doc.Collections.DocumentObjectCollection.ᜀ(DocumentObjectCollection A_0)
at Spire.Doc.Body.CloneImpl()
at Spire.Doc.Documents.SDTContent.CloneImpl()
at Spire.Doc.Documents.StructureDocumentTag.CloneImpl()
at Spire.Doc.Collections.DocumentObjectCollection.ᜀ(DocumentObjectCollection A_0)
at Spire.Doc.Body.CloneImpl()
at Spire.Doc.HeadersFooters.CloneImpl()
at Spire.Doc.Section.CloneImpl()
at Spire.Doc.Collections.DocumentObjectCollection.ᜀ(DocumentObjectCollection A_0)
at Spire.Doc.Document.ImportContent(IDocument doc, Boolean importStyles)
at Spire.Doc.Document..ctor(Document doc)
at Spire.Doc.Document.CloneImpl()
at Spire.Doc.Document.Clone()