新建对象的问题

在一段空间查询的代码编写过程中,在定义ISpatialFilter时,使用new来构建一个对象,始终报错(服务器出现意外,HRESULT异常之类)

ESRI.ArcGIS.Geodatabase.ISpatialFilter pSFilter = new ESRI.ArcGIS.Geodatabase.SpatialFilter();

后面使用了IServerContext.CreateObject()方法新建一个对象才解决了这个问题。如下:(红括号内是定义IServerContext对象sc的代码)

             ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapctrl = (ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) args.Control;
       
        // Get MapFunctionality from the control...
        MapFunctionality mapfunc = (MapFunctionality) mapctrl.GetFunctionality(mapctrl.MapResourceManagerInstance.ResourceItems.Count - 1);
        MapResourceLocal mapres = (MapResourceLocal) mapfunc.MapResource;
        IServerContext sc = mapres.ServerContextInfo.ServerContext;

 

ESRI.ArcGIS.Geodatabase.ISpatialFilter pSFilter = (ESRI.ArcGIS.Geodatabase.ISpatialFilter)sc.CreateObject("esriGeodatabase.SpatialFilter");

例外还要注意CreateObject()方法中对象ID写法,格式不对,也会报错的。

一起学习GIS及其二次开发,一起进步!
原文地址:https://www.cnblogs.com/tuncaysanli/p/1336213.html