I have a code that add an image to a spread, it works fine if I give a static string as relationship ID to it.
var drawingsPart = worksheetPart.AddNewPart();
GenerateDrawingsPart().Save(drawingsPart);
//get unique relationship id
string l_rid = worksheetPart.GetIdOfPart(drawingsPart);
worksheetPart.Worksheet.Append(new Drawing() { Id = l_rid });
worksheetPart.Worksheet.Save();
var imagePart = drawingsPart.AddNewPart("image/png", "rId1");
GenerateImagePart(imagePart,diagram);
it works just fine. As you can see I am using dynamic generated part id as the relastionship id for drawing object.
I am trying to do the same thing for image object. modified code as follow:
var drawingsPart = worksheetPart.AddNewPart<DrawingsPart>();
GenerateDrawingsPart().Save(drawingsPart);
//get unique relationship id
string l_rid = worksheetPart.GetIdOfPart(drawingsPart);
worksheetPart.Worksheet.Append(new Drawing() { Id = l_rid });
worksheetPart.Worksheet.Save();
var imagePart = drawingsPart.AddNewPart<ImagePart>();
//get unique relationship id
string l_ipRid = drawingsPart.GetIdOfPart(imagePart);
GenerateImagePart(imagePart, diagram);
but this time the compiler gives me an error.
Error 1 The type 'DocumentFormat.OpenXml.Packaging.ImagePart' cannot be used as type parameter 'T' in the generic type or method 'DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.AddNewPart<T>()'. There is no implicit reference conversion from 'DocumentFormat.OpenXml.Packaging.ImagePart' to 'DocumentFormat.OpenXml.Packaging.IFixedContentTypePart'.
what is going on?