ArcObject IWMSServiceDescription.get_LayerDescription C# error


My goal is to connect to a WMS Service and display a layer on my application's map using ESRI's ArcObject API for .NET.

Here is the part of my code I am struggling with:


String url = "some value";
String layerTitle = "another value";


PropertySet props = new PropertySet();
props.SetProperty("URL", url);

WMSConnectionName connectionName = new WMSConnectionName();
connectionName.ConnectionProperties = props;

WMSMapLayer mapLayer = new WMSMapLayer();
(mapLayer as IDataLayer).Connect(connectionName as IName);

IWMSGroupLayer groupLayer = (IWMSGroupLayer)mapLayer;
IWMSServiceDescription serviceDescription = groupLayer.WMSServiceDescription;
IWMSLayerDescription layerDescription = serviceDescription.get_LayerDescription(0);

groupLayer.get_Layer(0).Visible = true;

ILayer layer = (ILayer)groupLayer;
layer.Name = "WxOverlays " + layerTitle;
layer.Visible = true;

At run time I encounter:

System.Runtime.InteropServices.COMException (0x8000FFFF): The supplied command does not exist in the command pool at ESRI.ArcGIS.GISClient.IWMSServiceDescription.get_LayerDescription(Int32 index)

A google search revealed that some similar methods in the ArcObject API throw the same exception because they are not supported in C#. Has anyone encountered this before? Anyone see a way around it? Unfortunately, I am stuck using C#, so using Java or something that may have better support from ESRI is out of the question.

asked on Stack Overflow Jan 9, 2013 by Zane • edited Aug 7, 2017 by ylka

0 Answers

Nobody has answered this question yet.

User contributions licensed under CC BY-SA 3.0