Component and Service Interactions

Components and services have multiple ways of interacting with other components and services.

  • When possible, interaction through commands and operations should be preferred, as this introduces the loosest coupling.
  • When you need stronger coupling and direct access to a service, then dependency injection can be used to reference services.

If a component or service needs access to the ArcGIS MapView object powering the applications map, it can reference it through an ILayoutModel.

Interacting with the MapView#

Components or services can interact with the MapView by injecting an ILayoutModel that takes a MapView. The actual MapView needs to be resolved once the map component has loaded, so it's best practice to resolve the ILayoutModel in the initialization method of the component or service.


A layout model is resolved according to the layout hierarchy.

class CustomComponent : ComponentBase
private readonly ILayoutModel<MapView> _mapViewResolver;
private MapView _mapView;
public CustomComponent(ILayoutModel<MapView> mapViewResolver)
_mapViewResolver = mapViewResolver;
protected async override Task DoInitializeAsync()
_mapView = await _mapViewResolver.ResolveAsync();
var wkid = _mapView.SpatialReference.Wkid;

Relevant SDK Samples#

Check out the relevant Geocortex Mobile SDK Samples: