问题代码:
MapDocument是一个接口,在C#中接口是不可以被实例化的。
//将数据载入pMapDocument并与Map控件关联
IMapDocument pMapDocument = new MapDocument();
pMapDocument.Open(pFilePath, "");
//获取Map中激活的地图文档
axMapControl1.Map = pMapDocument.ActiveView.FocusMap;
axMapControl1.ActiveView.Refresh();
原因:
其实源码里在定义接口时同时定义了它的实现类coClass和唯一标识Guid,这个接口被这两个特性修饰的。
coClass这个特性指示编译器在编译MapDocument的时候,使用MapDocumentClass来实现。。
查看MapDocument生成的声明,它可以能有一个与MapDocumentClass关联的Guid,可以用于创建一个MapDocumentClass对象实例。
// 摘要:
// The MapDocument coclass is used to read and write map document files.
[CoClass(typeof(MapDocumentClass))]
[Guid("5366451C-A001-4179-B8CB-E8F014628A44")]
public interface MapDocument : IMapDocument
{
}