在iobject.net下进行水文分析出现未将对象引用到实例

0 投票

仿照的是示例程序中的水文分析,其中将

private void Initialize()
        {
            try
            {
                WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(@"..\..\SampleData\SurfaceAnalyst\SurfaceAnalyst.smwu");
                info.Type = WorkspaceType.SMWU;
                m_workspace.Open(info);
                m_datasource = m_workspace.Datasources["SurfaceAnalyst"];
                // 添加DEM栅格数据到当前地图上
                // Add DEM to the map
                AddDEM();
                m_mapControl.MouseMove += new MouseEventHandler(m_mapControl_MouseMove);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }

与这段代码中的打开程序直接打开工作空间不同

我自己的方式是添加DEM变为自己通过添加工作空间,双击数据集添加到地图中的方式打开DEM数据,使用的也是示例数据集

4月 27 分类:  55次浏览 | 用户: ling10 才疏学浅 (12 分)

1个回答

1 投票
 
已采纳
您好,根据您截图的报错信息,您的m_datasource为空值,

您可以调试代码,看看是您的数据源为何为空。

该步m_datasource = m_workspace.Datasources["SurfaceAnalyst"];,

通过工作空间open时返回值,判断上一步工作空间是否打开失败?该步代码数据源名称错误?m_datasource变量此步赋值成功,但未传到您FillSink方法中?对该数据源的IsOpened属性判断数据源是否打开成功?(失败一般是因为被其他线程占用)等等。

调试出您数据源m_datasource为空的原因。

希望可以帮助到您!。
4月 27 用户: 执笔画月 才高八斗 (804 分)
采纳于 4月 28 用户:ling10
想询问一下接口
...