IName(名称对象)介绍
giser吧
全部回复
仅看楼主
level 5
glasseswu 楼主
数据集对象可以分为两大类,一种是Table,我们无法将Table存储在要素数据集中(可以尝试下),一种是Geodataset,这个是要素类的容器。数据集对象有一个很重要的属性,就是这个Fullname,用这个可以返回和数据集相关的名称对象,而这个名称对象有一个很重要的方法Open(),这个可以获取和这个名称对象相关的对象(内存中的),Open()方法的返回值是object,所以用Open方法的时候,我们必须心里清楚,自己到底是要得到那个对象,然后QI到我们要的对象上。
IName对象是一个代表性对象。通过使用IName对象,可以访问它所代表的对象的一些基本属性,而不用将整个对象调入内存。我们用IWorkspace获得一个Workspace,那可是会调入内存的,而IWorkspaceName则不会,除非你用了IWorkspaceName.open.在我看来,那些继承IName的接口,在数据转换和叠加分析的时候经常要用到这个。
IName 是一个抽象类,拥有很多子类,借助它的子类IWorkspaceName也可以打开数据库。打开一个数据库,我们要指定它的类型,是个人数据库,还是文件数据库。IWorkspaceName的IWorkspaceName.WorkspaceFactoryProgID 属性用于完成这一操作,这个属性是一个枚举的常量类型
• esriDataSourcesGDB.AccessWorkspaceFactory
• esriDataSourcesFile.ArcInfoWorkspaceFactory
• esriDataSourcesFile.CadWorkspaceFactory
• esriDataSourcesGDB.FileGDBWorkspaceFactory
• esriDataSourcesOleDB.OLEDBWorkspaceFactory
• esriDataSourcesFile.PCCoverageWorkspaceFactory
• esriDataSourcesRaster.RasterWorkspaceFactory
• esriDataSourcesGDB.SdeWorkspaceFactory
• esriDataSourcesFile.ShapefileWorkspaceFactory
• esriDataSourcesOleDB.TextFileWorkspaceFactory
• esriDataSourcesFile.TinWorkspaceFactory
• esriDataSourcesFile.VpfWorkspaceFactory
public IWorkspace Get_Workspace(string _pWorkspacePath)
{
IWorkspaceName pWorkspaceName = new WorkspaceNameClass();
pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory";
pWorkspaceName.PathName = _pWorkspacePath;
IName pName = pWorkspaceName as IName;
IWorkspace pWorkspace = pName.Open() as IWorkspace;
return pWorkspace;
}

2011年08月11日 14点08分 1
level 1
请问使用INAME要添加什么引用呢?
2015年06月21日 04点06分 2
1