ArcEngine 创建工作空间工厂对象IWorkSpaceFactory的两种方式

简介: ArcEngine 创建工作空间工厂对象IWorkSpaceFactory有两种方式: 第一种使用ae的工厂方法:  IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass();  IFeatureWorkspace  pWorkSpace = pWsFactory.

ArcEngine 创建工作空间工厂对象IWorkSpaceFactory有两种方式:

第一种使用ae的工厂方法:

 IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass();
 IFeatureWorkspace  pWorkSpace = pWsFactory.OpenFromFile(path, 0) as IFeatureWorkspace;

使用这种方法有时候出现异常:无法将类型“System._ComObject”对象强制转换为ShapefileWorkspaceFactoryClass,这异常不只是针对ShapefileWorkspaceFactoryClass,还会出现在AccessWorkspaceFactoryClass,FileGDBWorkspaceFactoryClass和SdeWorkspaceFactoryClass等类型中,解决这个异常可以使用下面第二种方法创建。


第二种使用C#的动态创建类型的方法:

Type typeObj=System.Type .GetType ("esriWorkspaceType.ShapefileWorkspaceFactoryClass" );

 IWorkspaceFactory pWsFactory =( IWorkspaceFactory)Activator .CreateInstance(typeObj,null);

 IFeatureWorkspace  pWorkSpace = pWsFactory.OpenFromFile(path, 0) as IFeatureWorkspace;


希望这篇文章能够帮助到你。文章为博主原创,转载请注明出处!


欢迎关注微信公众号“GIS带我奔跑”获取更多GIS前沿开发技术、行业应用和最新资讯。

114f2af20b8b7a74778c95cf24de71cb06fc6b08

相关文章
关于Revit 共享参数的那点事
关于Revit 共享参数的那点事
关于Revit 共享参数的那点事
|
Python
5 类的创建及使用
5 类的创建及使用
107 0
|
JavaScript 测试技术 数据库
数据工厂平台重启-2: 创建第一个页面首页
本节来讲一下,如何创造第一个页面 并且打通链路,让自己和同事可以正常访问:
数据工厂平台重启-2: 创建第一个页面首页
使用Unity获取所有子对象及拓展方法的使用
这个问题还是比较简单的,无非就是一个for循环就可以全部获取到了,但是我喜欢简单直达,有没有直接就能获取到所有的子对象函数呢,搜了好久都没有,所以我准备写一个扩展函数,来自己补充这个函数,一起来看一下吧。
|
运维 Linux
RH236创建Brick
RH236创建Brick
117 0
RH236创建Brick
|
开发者 Python
对象的创建流程|学习笔记
快速学习 对象的创建流程
对象的创建流程|学习笔记
2-1 类的创建
创建一个简单的表示矩形的Rectangle类,满足以下条件: 1、定义两个成员变量height和width,表示矩形的长和宽,类型为整型 2、定义一个getArea方法,返回矩形的面积 3、定义一个getPerimeter...
1020 0