[转载]ArcObjects使用小记~Singleton objects
This document was published with and applies to ArcGIS 9.3.
A 10 version also exists. A 9.2 version also exists.
A 10 version also exists. A 9.2 version also exists.
About singleton objects
Singletons are objects that only support one instance of the object. In ArcObjects, singleton objects require instantiation through the Activator class and require explicit release via the ComReleaser class. See the System._ComObject and casting to strongly typed RCWs and Releasing COM References documents for more information. Additionally, all ArcObjects references within a thread should only communicate with objects in the same thread. Therefore, at ArcGIS 9.x, singleton objects were designed to be singletons per thread and not singletons per process, as detailed in Writing Multithreaded ArcObjects code.
The following table lists the singleton objects in ArcGIS; the types marked with an asterisk (*) are per process singletons (exceptions to the per thread rule).
The following table lists the singleton objects in ArcGIS; the types marked with an asterisk (*) are per process singletons (exceptions to the per thread rule).
Class
|
Library
|
Location
|
AccessWorkspaceFactory | DataSourcesGDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ActionEnvironment* | TrackingAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AGAnimationUtils | Animation | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AGSServerConnectionFactory | GISClient | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AMSWorkspaceFactory | TrackingAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationControlsDialog | AnimationUI | ArcGIS Desktop |
AnimationCreateKeyframeDialog | AnimationUI | ArcGIS Desktop |
AnimationFromPathDialog | AnimationUI | ArcGIS Desktop |
AnimationLayerGroupDialog | AnimationUI | ArcGIS Desktop |
AnimationManagerDialog | AnimationUI | ArcGIS Desktop |
AnimationTypeCamera | 3DAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeGlobeCamera | GlobeCore | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeGlobeLayer | GlobeCore | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeLayer | 3DAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeMapLayer | Animation | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeMapView | Animation | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeScene | 3DAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AnimationTypeTimeLayer | Animation | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
AppRef* | Framework | ArcGIS Desktop |
ArcInfoWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ArcMapSurveyExtension | SurveyExt | ArcGIS Desktop |
ArcWebConnection | ArcWeb | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
CadWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
CieLabConversion | Display | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
CommandsEnvironment | Controls | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
DddEnvironment | 3DAnalystUI | ArcGIS Desktop |
DddServerEnvironment | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
DDDToolbarEnvironment | 3DAnalystUI | ArcGIS Desktop |
DEGdbUtilities | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
DEUtilities | Geoprocessing | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
DummyGraduatedMarkerLayer | Carto | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
DummyLayer | Carto | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
EngineEditor | Controls | ArcGIS Engine |
EngineInkEnvironment | Controls | ArcGIS Engine |
EngineNetworkAnalystEnvironment | Controls | ArcGIS Engine |
EnvironmentManager | System | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ErrorDialog | SystemUtility | ArcGIS Engine (C++ only) |
ErrorMessage | SystemUtility | ArcGIS Engine (C++ only) |
ExcelWorkspaceFactory | DataSourcesOleDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ExtensionManager | System | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
FileGDBWorkspaceFactory | DataSourcesGDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
FindDialog | CatalogUI | ArcGIS Desktop |
FormatList | DataSourcesRaster | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GeoDatabaseHelper | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GMxEffectsToolbarEnvironment | ArcGlobe | ArcGIS Desktop |
GPGlobeFunctionFactory | GlobeCore | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GPHolder | Geoprocessing | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GPSAUtil | SpatialAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GPServerFunctionFactory | Geoprocessing | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GpsPositionDialog | ArcMapUI | ArcGIS Desktop |
GPUtilities | Geoprocessing | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
GxCatalogROT | CatalogUI | ArcGIS Desktop |
GxDatabaseExtensions | Catalog | ArcGIS Desktop |
IdentifyDialog | CartoUI | ArcGIS Desktop |
IMSWorkspaceFactory | GISClient | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
InMemoryWorkspaceFactory | DataSourcesGDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
LabelEnvironment | Carto | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
LayerEffectsEnvironment | ArcMapUI | ArcGIS Desktop |
LocatorManager | Location | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
MemoryRelationshipClassFactory | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
MessageLogger | System | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
MetadataSynchronizer | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
MonitorSettings | Display | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
MyPlaceCollection | Controls | ArcGIS Engine |
NADirectionsWindowManager | NetworkAnalystUI | ArcGIS Desktop |
NetCDFWorkspaceFactory | DataSourcesNetCDF | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
NetworkIdentifyDialog | NetworkAnalystUI | ArcGIS Desktop |
OLEDBWorkspaceFactory | DataSourcesOleDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
PCCoverageWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
RasterAnalysisToolbarEnvironment | SpatialAnalystUI | ArcGIS Desktop |
RasterAttributeTableManager | DataSourcesRaster | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
RasterDefaultsEnv | Carto | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
RasterSettings | SpatialAnalystUI | ArcGIS Desktop |
RasterStatus | DataSourcesRaster | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
RasterWorkspaceFactory | DataSourcesRaster | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
RelQueryTableFactory | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SAExtension | SpatialAnalystUI | ArcGIS Desktop |
SchematicProjectMgr | Schematic | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SchematicWorkspaceFactory | Schematic | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ScratchWorkspaceFactory | DataSourcesGDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SDCWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SdeWorkspaceFactory | DataSourcesGDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SelectionEnvironment | Carto | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ServerStyleGallery | Display | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ShapefileWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SpatialReferenceEnvironment | Geometry | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
StreetMapWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
StyleGallery | Framework | ArcGIS Desktop |
SurveyDatabaseEnvironment | SurveyExt | ArcGIS Desktop |
SurveySnapAgentManager | SurveyExt | ArcGIS Desktop |
SxAnimationEnvironment | 3DAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SxEffectsToolbarEnvironment | ArcScene | ArcGIS Desktop |
SymbologyEnvironment | Display | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
SystemHelper | System | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
TAExtension | TrackingAnalystUI | ArcGIS Desktop |
TextFileWorkspaceFactory | DataSourcesOleDB | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
TexturePersistenceProperties | Geometry | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
TinWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
TMS_MarshalHelper | TrackingAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
ToolboxWorkspaceFactory | Geoprocessing | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
TrackingEnvironment | TrackingAnalyst | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
UOMFormatEnvironment | SurveyExt | ArcGIS Desktop |
VpfWorkspaceFactory | DataSourcesFile | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
WMSConnectionFactory | GISClient | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
WorkspaceFactory | Geodatabase | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
XMLTypeMapper | System | ArcGIS Desktop, ArcGIS Engine, ArcGIS Server |
* These are singletons that only support one instance of the object per process.