In this topic
- About singleton objects
- Singletons and System.__COMObject
- Using the Activator class to create singletons
- Singleton objects in ArcObjects
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. Additionally, all ArcObjects references within a thread should only communicate with objects in the same thread. Therefore, at ArcGIS 9.x, singleton objects were singletons per thread and not singletons per process, as detailed in Writing multithreaded ArcObjects code.
Singletons and System.__COMObject
In the topic Using ArcObjects (COM-based) in .NET, the "Runtime callable wrappers" and the "System.__COMObject type" sections show that a strongly typed runtime callable wrapper (RCW) is created when you instantiate the Component Object Model (COM) object by using the new keyword, whereas if the object is preexisting, the type of RCW is the generic System.__ComObject.
Sometimes when you use the new keyword to instantiate a COM object, you get a reference to an existing object. This happens when attempting to instantiate a singleton class that has previously been instantiated.
The .NET Framework is unable to wrap in a strongly typed RCW an instance of an object that has previously been wrapped in the generic System.__ComObject RCW. If your code has encountered this situation, you might receive an error such as Unable to cast object of type System.__ComObject to type <Typename>. See the following code example:
[C#] ESRI.ArcGIS.Display.IStyleGallery sg=new ESRI.ArcGIS.Framework.StyleGalleryClass();
[VB.NET] Dim sg As ESRI.ArcGIS.Display.IStyleGallery=New ESRI.ArcGIS.Framework.StyleGalleryClass
The previous error can occur even though you have declared your variable using the interface name rather than the class name, as shown in the previous example. The problem occurs because, when your code instantiates an object, the .NET runtime first attempts to wrap the object in the strongly typed class type (the type stated after the new keyword) before attempting a cast to the interface type. The cast to the strongly typed RCW cannot succeed because the COM object has previously been wrapped in the generic System.__ComObject wrapper. This can occur in situations beyond your control. For example, other ArcObjects tools written in .NET from third parties might wrap an object in the generic wrapper, causing your code to fail.
The solution is to use the Activator class (shown as follows) to safely wrap singleton objects in a strongly typed RCW when you first get a reference to them. Additionally, you should generally always declare variables holding RCWs using an interface rather than a class type.
Using the Activator class to create singletons
If you use the CreateInstance method of the Activator class instead of the new keyword to instantiate singletons, you can avoid such errors as discussed in the previous section, as Activator can get the required metadata to perform the cast. See the following code example:
[C#] Type t=Type.GetTypeFromProgID("esriFramework.StyleGallery");
System.Object obj=Activator.CreateInstance(t);
IStyleGallery sg=obj as IStyleGallery;
[VB.NET] Dim t As Type=Type.GetTypeFromProgID("esriFramework.StyleGallery")
Dim obj As System.Object=Activator.CreateInstance(t)
Dim pApp As ESRI.ArcGIS.Display.IStyleGallery=obj
Instantiating the AppRef class
You can use the preceding technique to instantiate the AppRef class; however, the AppRef class can only be created in an ArcGIS application. (The type is the generic System.__ComObject RCW.) See the following code example:
[C#] Type t=Type.GetTypeFromProgID("esriFramework.AppRef");
System.Object obj=Activator.CreateInstance(t);
ESRI.ArcGIS.Framework.IApplication pApp=obj as ESRI.ArcGIS.Framework.IApplication;
[VB.NET] Dim t As Type=Type.GetTypeFromProgID("esriFramework.AppRef")
Dim obj As System.Object=Activator.CreateInstance(t)
Dim pApp As ESRI.ArcGIS.Framework.IApplication=obj
Singleton objects in ArcObjects
The following table lists the singleton objects in ArcGIS. The types with an asterisk (*) are per process singletons (exceptions to the per thread rule).
Class |
Library |
ProgID |
GUID |
Location |
AccessWorkspaceFactory | DataSourcesGDB | esriDataSourcesGDB.AccessWorkspaceFactory | dd48c96a-d92a-11d1-aa81-00c04fa33a15 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ActionEnvironment* | TrackingAnalyst | esriTrackingAnalyst.ActionEnvironment | 1e18428c-86eb-4678-a987-f8157feb77cf | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AGAnimationUtils | Animation | esriAnimation.AGAnimationUtils | 2835514b-1a02-4142-8474-31d48d9063a8 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AGSServerConnectionFactory | GISClient | esriGISClient.AGSServerConnectionFactory | 7932a86e-f371-4c64-ab84-9e83dda2581b | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AMSWorkspaceFactory | TrackingAnalyst | esriTrackingAnalyst.AMSWorkspaceFactory | a677ab59-2fb8-11d5-b7e2-00010265adc5 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationControlsDialog | AnimationUI | esriAnimationUI.AnimationControlsDialog | 0a44bca2-ec21-4ea3-85d3-a0aae57127e5 | ArcGIS Desktop |
AnimationCreateKeyframeDialog | AnimationUI | esriAnimationUI.AnimationCreateKeyframeDialog | 8c253bb9-4da2-4ab5-aceb-c6686006c37a | ArcGIS Desktop |
AnimationFromPathDialog | AnimationUI | esriAnimationUI.AnimationFromPathDialog | dfde1249-74bb-48d3-aae8-b3155f25fd52 | ArcGIS Desktop |
AnimationLayerGroupDialog | AnimationUI | esriAnimationUI.AnimationLayerGroupDialog | ebf7b926-ee3c-4773-b81e-a7fef23cd7ce | ArcGIS Desktop |
AnimationManagerDialog | AnimationUI | esriAnimationUI.AnimationManagerDialog | f68848ca-f6af-40aa-8eaf-3305890aee5c | ArcGIS Desktop |
AnimationTypeCamera | 3DAnalyst | esri3DAnalyst.AnimationTypeCamera | 500f4707-a798-11d5-b2a0-00508bcdde28 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeGlobeCamera | GlobeCore | esriGlobeCore.AnimationTypeGlobeCamera | d4565495-e2f9-4d89-a8a7-d0b69fd7a424 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeGlobeLayer | GlobeCore | esriGlobeCore.AnimationTypeGlobeLayer | 7ccba704-3933-4d7a-8e89-4dfee88aa937 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeLayer | 3DAnalyst | esri3DAnalyst.AnimationTypeLayer | 24aa4279-adf3-11d5-b2a0-00508bcdde28 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeMapLayer | Animation | esriAnimation.AnimationTypeMapLayer | 0a965644-11f1-4901-a0cf-9989bfd27b6d | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeMapView | Animation | esriAnimation.AnimationTypeMapView | fd22a714-0eef-4312-8703-d81e5476e28a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeScene | 3DAnalyst | esri3DAnalyst.AnimationTypeScene | 24aa427a-adf3-11d5-b2a0-00508bcdde28 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AnimationTypeTimeLayer | Animation | esriAnimation.AnimationTypeTimeLayer | a85b10a9-9eab-4f93-9259-5fbae98000eb | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
AppRef* | Framework | esriFramework.AppRef | e1740ec5-9513-11d2-a2df-0000f8774fb5 | ArcGIS fr Desktop |
ArcInfoWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.ArcInfoWorkspaceFactory | 1d887452-d9f2-11d1-aa81-00c04fa33a15 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
CadWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.CadWorkspaceFactory | 9e2c27ce-62c6-11d2-9aed-00c04fa33299 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
CieLabConversion | Display | esriDisplay.CieLabConversion | 137e39dc-3e98-11d2-aaf7-00c04fa334b3 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
CommandsEnvironment | Controls | esriControls.CommandsEnvironment | 46d9c72e-4dc2-4589-b809-a51fc4a57684 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
DddEnvironment | 3DAnalystUI | esri3DAnalystUI.DddEnvironment | 94305472-592e-11d4-80ee-00c04fa0adf8 | ArcGIS Desktop |
DddServerEnvironment | Geodatabase | esriGeodatabase.DddServerEnvironment | 3b6c52a4-7231-4189-b341-c30e7fb58bcf | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
DDDToolbarEnvironment | 3DAnalystUI | esri3DAnalystUI.DDDToolbarEnvironment | 2d73b143-8f1c-11d4-a10f-00508bd60cb9 | ArcGIS Desktop |
DEGdbUtilities | Geodatabase | esriGeodatabase.DEGdbUtilities | 48f71b4d-72ce-42aa-a45c-5c180f6e78e8 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
DEUtilities | Geoprocessing | esriGeoprocessing.DEUtilities | f0c2aa3e-b2f1-4208-9843-6a3c70a4680a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
DummyGraduatedMarkerLayer | Carto | esriCarto.DummyGraduatedMarkerLayer | 238ccd1a-7fbc-11d2-87dc-0000f8751720 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
DummyLayer | Carto | esriCarto.DummyLayer | 238ccd19-7fbc-11d2-87dc-0000f8751720 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
EngineEditor | Controls | esriControls.EngineEditor | 4afaf64d-0cb2-4adb-bc88-9fb07548d10d | ArcGIS Engine |
EngineNetworkAnalystEnvironment | Controls | esriControls.EngineNetworkAnalystEnvironment | 7da28a78-4027-4cc8-a8c3-fd31c6f22e9e | ArcGIS Engine |
EnvironmentManager | System | esriSystem.EnvironmentManager | 8a626d49-5f5e-47d9-9463-0b802e9c4167 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ErrorDialog | SystemUtility | esriSystemUtility.ErrorDialog | 40accbda-720a-4b17-980b-b173f791958e | ArcGIS Engine (C++ only) |
ErrorMessage | SystemUtility | esriSystemUtility.ErrorMessage | 672fb3aa-c6de-44e0-b767-c53d33ef9879 | ArcGIS Engine (C++ only) |
ExcelWorkspaceFactory | DataSourcesOleDB | esriDataSourcesOleDB.ExcelWorkspaceFactory | 30f6f271-852b-4ee8-bd2d-099f51d6b238 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ExtensionManager | System | esriSystem.ExtensionManager | 6120bc0a-3d90-4274-97ca-713c41f1faff | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
FileGDBWorkspaceFactory | DataSourcesGDB | esriDataSourcesGDB.FileGDBWorkspaceFactory | 71fe75f0-ea0c-4406-873e-b7d53748ae7e | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
FindDialog | CatalogUI | esriCatalogUI.FindDialog | ad0b37a9-d396-11d3-a6f3-0008c7d3ae50 | ArcGIS Desktop |
FormatList | DataSourcesRaster | esriDataSourcesRaster.FormatList | 53b7c0b9-41fb-4b00-b51a-fa5cc5b785fe | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GeoDatabaseHelper | Geodatabase | esriGeodatabase.GeoDatabaseHelper | 4e35da0b-c5d1-4ac9-bd62-b36b4155ee4b | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GMxEffectsToolbarEnvironment | ArcGlobe | esriArcGlobe.GMxEffectsToolbarEnvironment | 3eafa611-dc74-4c29-bab6-c401e7c76ac6 | ArcGIS Desktop |
GPGlobeFunctionFactory | GlobeCore | esriGlobeCore.GPGlobeFunctionFactory | 9e8cedbd-fd6f-41d8-93a0-35207790ba08 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GPHolder | Geoprocessing | esriGeoprocessing.GPHolder | 602b0005-0ad2-41f1-a831-c640d8586cad | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GPSAUtil | SpatialAnalyst | esriSpatialAnalyst.GPSAUtil | 0c4404c3-276c-475b-bf33-dd35082e5e3a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GPServerFunctionFactory | Geoprocessing | esriGeoprocessing.GPServerFunctionFactory | f8ac2c04-deec-43f4-86ef-246f91f12856 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GpsPositionDialog | ArcMapUI | esriArcMapUI.GpsPositionDialog | f56723f3-063d-4b4a-89b9-f03afadf2078 | ArcGIS Desktop |
GPUtilities | Geoprocessing | esriGeoprocessing.GPUtilities | 59e42101-2f33-4b6d-8cee-eed9d98d1957 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
GxCatalogROT | CatalogUI | esriCatalogUI.GxCatalogROT | 04faa368-046b-4cfe-81cb-1c8201f9cad3 | ArcGIS Desktop |
GxDatabaseExtensions | Catalog | esriCatalog.GxDatabaseExtensions | 27E179F2-4F3E-11D3-9F52-00C04F6BDF06 | ArcGIS Desktop |
IdentifyDialog | CartoUI | esriCartoUI.IdentifyDialog | f8aab776-8b1e-11d3-9f7a-00c04f6bc886 | ArcGIS Desktop |
IMSWorkspaceFactory | GISClient | esriGISClient.IMSWorkspaceFactory | bac84d58-fa9d-11d3-9f48-00c04f79927c | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
InMemoryWorkspaceFactory | DataSourcesGDB | esriDataSourcesGDB.InMemoryWorkspaceFactory | 7f2bc55c-b902-43d0-a566-aa47ea9fda2c | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
LabelEnvironment | Carto | esriCarto.LabelEnvironment | 76765b96-ce78-11d2-9f36-00c04f6bc6a5 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
LayerEffectsEnvironment | ArcMapUI | esriArcMapUI.LayerEffectsEnvironment | 377aba22-2019-11d3-9f97-00c04f6bc78e | ArcGIS Desktop |
LocatorManager | Location | esriLocation.LocatorManager | e0f10b7a-eb7c-11d2-9f47-00c04f8ed1c4 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
MemoryRelationshipClassFactory | Geodatabase | esriGeodatabase.MemoryRelationshipClassFactory | 2fc5c57b-eb92-4a61-bbc5-434e388bf3b9 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
MessageLogger | System | esriSystem.MessageLogger | a2e96efd-d501-433b-941f-83447916b8f6 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
MetadataSynchronizer | Geodatabase | esriGeodatabase.MetadataSynchronizer | c10124ee-3648-445e-a16b-9d2755fbd690 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
MonitorSettings | Display | esriDisplay.MonitorSettings | 9db25fe0-3c75-11d2-aaf6-00c04fa334b3 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
MyPlaceCollection | Controls | esriControls.MyPlaceCollection | 83307360-8be1-4df2-b301-1e619a965b5c | ArcGIS Engine |
NADirectionsWindowManager | NetworkAnalystUI | esriNetworkAnalystUI.NADirectionsWindowManager | bc36cf3b-1fc1-461d-92df-ca51cdc9c84c | ArcGIS Desktop |
NetCDFWorkspaceFactory | DataSourcesNetCDF | esriDataSourcesNetCDF.NetCDFWorkspaceFactory | df61a9e1-b8e2-498f-bde5-98de42e801f9 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
NetworkIdentifyDialog | NetworkAnalystUI | esriNetworkAnalystUI.NetworkIdentifyDialog | e4c692c6-f721-4ba4-a000-83893af482ae | ArcGIS Desktop |
OLEDBWorkspaceFactory | DataSourcesOleDB | esriDataSourcesOleDB.OLEDBWorkspaceFactory | 59158055-3171-11d2-aa94-00c04fa37849 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
PCCoverageWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.PCCoverageWorkspaceFactory | 6de812d2-9ab6-11d2-b0d7-0000f8780820 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
RasterAnalysisToolbarEnvironment | SpatialAnalystUI | esriSpatialAnalystUI.RasterAnalysisToolbarEnvironment | 89daddfd-79ec-4f5e-8252-ae716a89ac15 | ArcGIS Desktop |
RasterAttributeTableManager | DataSourcesRaster | esriDataSourcesRaster.RasterAttributeTableManager | fe143bf3-8d4e-415a-a7e9-a3ac29ab65a7 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
RasterDefaultsEnv | Carto | esriCarto.RasterDefaultsEnv | eb0d0573-c109-11d2-9f43-00c04f8ed21a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
RasterSettings | SpatialAnalystUI | esriSpatialAnalystUI.RasterSettings | 8ac2f518-ed49-11d2-9f40-00c04f8ed1d7 | ArcGIS Desktop |
RasterStatus | DataSourcesRaster | esriDataSourcesRaster.RasterStatus | 83220700-5844-11d4-8d9b-00c04f5b87b2 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
RasterWorkspaceFactory | DataSourcesRaster | esriDataSourcesRaster.RasterWorkspaceFactory | 4c91d963-3390-11d2-8d25-0000f8780535 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
RelQueryTableFactory | Geodatabase | esriGeodatabase.RelQueryTableFactory | 9b4e4d0c-753a-43bb-83fb-ba16f6652e1c | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SAExtension | SpatialAnalystUI | esriSpatialAnalystUI.SAExtension | 3c5059fe-9f15-401a-94ed-eed914d73e3e | ArcGIS Desktop |
SchematicProjectMgr | Schematic | esriSchematic.SchematicProjectMgr | c578262a-16c2-4f5a-a526-d738addc8208 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SchematicWorkspaceFactory | Schematic | esriSchematic.SchematicWorkspaceFactory | e18fc71c-fda7-4c7b-a824-c024d7900b5d | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ScratchWorkspaceFactory | DataSourcesGDB | esriDataSourcesGDB.ScratchWorkspaceFactory | 06dc8e4c-951c-11d2-ae75-080009ec732a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SDCWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.SDCWorkspaceFactory | 34dae34f-dbe2-409c-8f85-ddbb46138011 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SdeWorkspaceFactory | DataSourcesGDB | esriDataSourcesGDB.SdeWorkspaceFactory | d9b4fa40-d6d9-11d1-aa81-00c04fa33a15 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SelectionEnvironment | Carto | esriCarto.SelectionEnvironment | e3875b71-d9f5-11d1-add4-080009ec732a | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ServerStyleGallery | Display | esriDisplay.ServerStyleGallery | 9cdcf7da-63b8-4f23-b769-1db1bceadd35 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ShapefileWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.ShapefileWorkspaceFactory | a06adb96-d95c-11d1-aa81-00c04fa33a15 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SpatialReferenceEnvironment | Geometry | esriGeometry.SpatialReferenceEnvironment | 7b5b7020-c4f6-11d1-bc92-0000f875bcce | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
StreetMapWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.StreetMapWorkspaceFactory | ae2469e8-e110-4cd6-b3f4-a756cbf921ca | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
StyleGallery | Framework | esriFramework.StyleGallery | ac0e9827-91cb-11d1-8813-080009ec732a | ArcGIS Desktop |
SxAnimationEnvironment | 3DAnalyst | esri3DAnalyst.SxAnimationEnvironment | 592d0b58-82ad-11d5-b29b-00508bcdde28 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SxEffectsToolbarEnvironment | ArcScene | esriArcScene.SxEffectsToolbarEnvironment | 80e3f11d-c4bb-11d4-b27e-00508bcdde28 | ArcGIS Desktop |
SymbologyEnvironment | Display | esriDisplay.SymbologyEnvironment | 65856cd8-ad04-11d3-9fc2-00c04f6bc8dd | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
SystemHelper | System | esriSystem.SystemHelper | be49d696-3c46-4b81-960b-f67d1bbd238d | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
TAExtension | TrackingAnalystUI | esriTrackingAnalystUI.TAExtension | d53bf20f-24fb-11d4-b34c-00104ba2abcc | ArcGIS Desktop |
TextFileWorkspaceFactory | DataSourcesOleDB | esriDataSourcesOleDB.TextFileWorkspaceFactory | 72ce59ec-0be8-11d4-ae03-00c04fa33a15 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
TexturePersistenceProperties | Geometry | esriGeometry.TexturePersistenceProperties | 01cfeaf1-4d26-4084-84f8-7d2fda7c40d9 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
TinWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.TinWorkspaceFactory | ad4e89d9-00a5-11d2-b1ca-00c04f8edeff | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
TMS_MarshalHelper | TrackingAnalyst | esriTrackingAnalyst.TMS_MarshalHelper | 6e5bff39-dcc0-11d6-b861-00010265adc5 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
ToolboxWorkspaceFactory | Geoprocessing | esriGeoprocessing.ToolboxWorkspaceFactory | e9231b31-2a34-4729-8de2-12cf39674b1b | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
TrackingEnvironment | TrackingAnalyst | esriTrackingAnalyst.TrackingEnvironment | ef13642c-42da-4095-8a5b-c4f9c6a7bbe3 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
VpfWorkspaceFactory | DataSourcesFile | esriDataSourcesFile.VpfWorkspaceFactory | 397847f9-c865-11d3-9b56-00c04fa33299 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
WMSConnectionFactory | GISClient | esriGISClient.WMSConnectionFactory | f7c34345-87ce-4ab5-9ca8-2012d7241075 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
WorkspaceFactory | Geodatabase | esriGeodatabase.WorkspaceFactory | FBF5715D-A05D-11D4-A64C-0008C711C8C1 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
XMLTypeMapper | System | esriSystem.XMLTypeMapper | dcb0f748-2d17-40b5-90c2-7d0b39660405 | ArcGIS Desktop, ArcGIS Engine, ArcGIS for Server |
* These are singletons that only support one instance of the object per process. |
See Also:
Releasing COM referencesUsing ArcObjects (COM-based) in .NET