The QueryFilter does not function, and errors are returned for methods that require IQueryFilter parameters, such as IFeatureClass.Search, IFeatureSelection.SelectFeatures, and so on, in external ArcObjects applications that access ArcMap using the IAppROT interface.
上次发布: August 26, 2016ArcObjects SDK for the Microsoft .NET Framework
漏洞 ID 编号
BUG-000097730
已提交
July 13, 2016
上次修改时间
June 11, 2020
适用范围
ArcObjects SDK for the Microsoft .NET Framework
找到的版本
10.4.1
服务器平台
Windows
Version Fixed
10.5.0
状态
Fixed
此漏洞已得到修复。 有关详细信息,请参阅“版本修复”和“其他信息”(如果适用)。
解决办法
Use IObjectFactory.Create to create the QueryFilter object instead of the new keyword to ensure the QueryFilter functions as expected from external applications, as shown in the following code:
IQueryFilter pQF = new QueryFilter();
string classID = pQF.GetType().GUID.ToString("B");
/// appRot application space
IObjectFactory objectFactory = (IObjectFactory)pAPP;
pQF = (IQueryFilter)objectFactory.Create(classID);
For more information about this workaround, refer to the document at http://desktop.arcgis.com/en/arcobjects/latest/net/webframe.htm#56eba175-54c1-46b4-801a-fc968e582581.htm.