0

DotSpatial DemoMap在我的应用程序中使用作为主要前端,并且我创建了许多插件以在启动时加载到 DemoMap 中并且它们正在工作。但是,我不太清楚如何允许我的自定义插件访问主地图控件。

我在DemoMap的主窗体中看到,有一个App.Map属性作为主地图控件的句柄(对吗?),如果这是真的,那么我想我需要在启动时将它传递给每个插件?

最重要的是,允许从所有自定义插件在整个应用程序中访问主地图控件的最有效/最佳方式是什么?(我在 .Net 4.5.2 上使用 DotSpatial 2.0 库)

4

1 回答 1

0

通过属性派生Extension并访问AppManger-supplied 地图。App.Map

扩展(插件)可以通过App.Map属性访问地图。任何派生自的类都可以访问它,Extension因此不需要将其传递到插件中。允许您访问该属性的 AppManager 是通过 MEF 自动注入的。

这是一个示例扩展

public class SimpleMapPlugin : Extension
{
    public SimpleMapPlugin()
    {
        // Access App.Map as needed.
    }
}
于 2020-04-16T03:00:55.440 回答