关于C#中使用ArcGIS开发接口“ISaveAs2.SaveAs”无法写入数据的说明

在ArcGIS的二次开发中我们可以通过接口“ISaveAs2”的“SaveAs”方法将数据保存到本地。但是由于该方法将返回一个IDataset对象来绑定输出,因此在.NET开发时我们必须使用“Marshal.ReleaseComObject”方法来将该IDataset对象释放,否则数据将无法完整写入本地文件中。以下为官方说明:
Note, SaveAs will return a RasterDataset, to prevent from ISaveAs holding the output, .NET ReleaseCOMObject needs to be called to release the referene to the output raster dataset: System.Runtime.InteropServices.Marshal.ReleaseComObject(outRasterDS);

// 保存数据
IDataset dataset = saveAs2.SaveAs(fileName, workspace, "TIFF");
// 释放IDataset对象
Marshal.ReleaseComObject(dataset);

发表回复