利用ArcEngine10编写地图符号化和利用颜色 模板 时,需要利用ESRI.ArcGIS.Framework.dll,但在编写代码:
创建新符号:IStyleGalleryItem pStyleGalleryItem = new ESRI.ArcGIS.Framework.StyleGalleryItem()或者
创建新颜色模块:IColorPalette pColorPalette = new ESRI.ArcGIS.Framework.ColorPalette();
代码 不会出错,但在运行后就会出现异常: Additional information: 检索 COM 类工厂中 CLSID 为 {14746474-1534-11D3-9F49-00C04F6BC709} 的组件失败,原因是出现以下错误: 80040111 ClassFactory 无法供应请求的类 (异常来自 HRESULT:0x80040111 (CLASS_E_CLASSNOTAVAILABLE))(如下图)。

找了两天,原因终于明白:这是因为引用了一些只能在Desktop使用的 类 。IStyleGalleryItem和IColorPalette,还有IStyleSelector等,它们所在的命名空间就是ESRI.ArcGIS.Framework。既然是使用了Desktop的类,那么在引用这些只就必须安装Desktop了,所以解决方法就是在程序入口处需把ArcGIS Desktop进行与程序互动,即在Programe.cs(以C#为例)文件中,添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
如下图:

这样问题就 解决 ,就可生成颜色模块了,运行后如下:

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删