在带有CSV文件的C#中使用GDAL.OpenEx()

在带有CSV文件的C#中使用GDAL.OpenEx(),c#,csv,gdal,ogr,C#,Csv,Gdal,Ogr,我正在尝试使用GDAL v2.1.3读取CSV文件中的所有字段 使用此命令,它正在工作: ogrinfo -ro -al -so test.csv -oo X_POSSIBLE_NAMES=Lon* -oo Y_POSSIBLE_NAMES=Lat* -oo KEEP_GEOM_COLUMNS=NO 现在我需要在我的C#应用程序中执行此操作。 因为我需要发送-oo(打开选项),所以我不能使用Ogr.open(),但我应该使用Gdal.OpenEx(),对吗? OpenEx返回一个数据集,我需要

我正在尝试使用GDAL v2.1.3读取CSV文件中的所有字段 使用此命令,它正在工作:

ogrinfo -ro -al -so test.csv -oo X_POSSIBLE_NAMES=Lon* -oo Y_POSSIBLE_NAMES=Lat* -oo KEEP_GEOM_COLUMNS=NO
现在我需要在我的C#应用程序中执行此操作。 因为我需要发送
-oo
(打开选项),所以我不能使用
Ogr.open()
,但我应该使用
Gdal.OpenEx()
,对吗?
OpenEx
返回一个
数据集
,我需要将其转换为一个
ogr数据源
,这样我就可以使用
GetLayerByIndex()
GetFieldCount()
GetFieldDefn()
了,但我无法让它工作

查看大量Python示例,在Python中似乎不需要转换。 这是我的C#代码:

var openOptions=new[]
{
“X_可能的名称”,“Lon*”,
“可能的名称”、“Lat*”,
“保留几何柱”、“否”
};
使用(var ds=Gdal.OpenEx(输入,4,null,openOptions,null))
{
如果(ds==null)
{
抛出新异常(“无法打开OGR数据集:“+input”);
}

//var layer=ds.GetLayerByIndex(0);我根本不是swig专家,但数据集的矢量(OGR)部分似乎没有在

中专门为C定义,为什么我会得到一个
-1
?这不是一个合理的问题吗?如果不是,请解释原因。
var openOptions = new[]
{
    "X_POSSIBLE_NAMES", "Lon*",
    "Y_POSSIBLE_NAMES", "Lat*",
    "KEEP_GEOM_COLUMNS", "NO"
};
using (var ds = Gdal.OpenEx(input, 4, null, openOptions, null))
{
    if (ds == null)
    {
        throw new Exception("Can't open OGR dataset: " + input);
    }
    // var layer = ds.GetLayerByIndex(0); <----- COMPILE ERROR
}