新建对象的问题
在一段空间查询的代码编写过程中,在定义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写法,格式不对,也会报错的。