C# 在Silverlight ESRI地图中显示形状文件

C# 在Silverlight ESRI地图中显示形状文件,c#,silverlight-4.0,esri,shapefile,C#,Silverlight 4.0,Esri,Shapefile,这是我的情况, 我有一个ESRI Map Silverlight应用程序,它需要显示客户端提供给我的形状文件 我发现的唯一一个允许您这样做的第三方库是。他们给出的示例是使用“打开文件”对话框选择形状文件并将其加载到FileInfo类中以显示。(参见网站首页上的示例) 然而,我遇到了这样一个问题:由于它是Silverlight应用程序,任何实例化FileInfo对象实例的尝试都会导致应用程序崩溃 所以我的问题是,有没有一种方法可以让我加载/显示我在Silverlight中本地保存到应用程序中的形状

这是我的情况,

我有一个ESRI Map Silverlight应用程序,它需要显示客户端提供给我的形状文件

我发现的唯一一个允许您这样做的第三方库是。他们给出的示例是使用“打开文件”对话框选择形状文件并将其加载到FileInfo类中以显示。(参见网站首页上的示例)

然而,我遇到了这样一个问题:由于它是Silverlight应用程序,任何实例化FileInfo对象实例的尝试都会导致应用程序崩溃

所以我的问题是,有没有一种方法可以让我加载/显示我在Silverlight中本地保存到应用程序中的形状文件

如果你需要我提供更多信息,请告诉我

提前谢谢

代码:


我有一个Silverlight应用程序,它也在做同样的事情,但我正在做的是将shapefile作为blob上传到后端的SQL db,然后从那里获取它

对于你想做的事情,你应该看看。我想这会帮你的

FileInfo runwayShp = new FileInfo("Layers\\Runway.shp"); //This line breaks, says file access is denied.
FileInfo runwayDbf = new FileInfo("Layers\\Runway.dbf");
ShapeFile shapeFileReader = new ShapeFile();
if (runwayShp != null && runwayDbf != null)
{
    shapeFileReader.Read(runwayShp, runwayDbf);
}
GraphicsLayer graphicsLayer = MyMap.Layers["ShapeLayer"] as GraphicsLayer;
foreach (ShapeFileRecord record in shapeFileReader.Records)
{

    Graphic graphic = record.ToGraphic();
    if (graphic != null)
        graphicsLayer.Graphics.Add(graphic);
    }
}