private void Test()
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += (sender, args) =>
{
if (args.Error == null)
{
StreamReader reader = new StreamReader(args.Result);
string json = reader.ReadToEnd();
var fLayer = FeatureLayer.FromJson(json);
}
else
Debug.WriteLine(args.Error.Message);
};
string url = @"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/0?f=pjson";
wc.OpenReadAsync(new Uri(url));
}
System.ArgumentException occurred Message=layerDefinition Parameter name: Property was not found during JSON deserialization. StackTrace: at ESRI.ArcGIS.Client.FeatureLayer.FromDictionary(IDictionary`2 definition) at ESRI.ArcGIS.Client.FeatureLayer.FromJson(String json) at Viewer.Addins.Query.QueryControl.<Test>b__1(Object sender, OpenReadCompletedEventArgs args) InnerException:
private void Test()
{
var fLayer = new FeatureLayer();
fLayer.ID = "my flayer";
fLayer.Url = @"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0";
//fLayer.Url = @"http://www.badurl123.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0;";
fLayer.Initialized += (sender, args) =>
{
foreach (Field f in fLayer.LayerInfo.Fields)
Debug.WriteLine(f.Name);
};
fLayer.InitializationFailed += (sender, args) =>
{
Debug.WriteLine("init failed");
};
fLayer.Initialize();
}However if I use badurl123.com, InitializationFailed is not called as I would expect. Instead Initialized is called, which is not expected.
fLayer.Initialized += (sender, args) =>
{
if (fLayer.InitializationFailure == null)
foreach (Field f in fLayer.LayerInfo.Fields)
Debug.WriteLine(f.Name);
};