如何从 DemoMap DotSpatial 程序中的插件访问地图控件
How to access Map control from plugins in the DemoMap DotSpatial program
我在我的应用程序中使用 DotSpatial DemoMap
作为主要前端,并且我创建了许多插件以在启动时加载到 DemoMap 中并且它们正在运行。但是,我不是很清楚如何让我的自定义插件访问主地图控件。
我在 DemoMap 的主窗体中看到,有 App.Map
属性 作为主地图控件的句柄(对吗?),如果这是真的,那么我想我需要在每个插件启动的时候传入吗?
最重要的是,什么是最 efficient/best 允许从所有自定义插件在整个应用程序中访问主地图控件的方法? (我在 .Net 4.5.2 上使用 DotSpatial 2.0 库)
源自 Extension
并通过 App.Map
属性.
访问 AppManger
提供的地图
扩展程序(插件)可以通过 App.Map
属性 访问地图。派生自 Extension
的任何 class 都可以访问,因此不需要将其传递到插件中。
允许您访问 属性 的 AppManager 是通过 MEF 自动注入的。
这是一个示例扩展
public class SimpleMapPlugin : Extension
{
public SimpleMapPlugin()
{
// Access App.Map as needed.
}
}
我在我的应用程序中使用 DotSpatial DemoMap
作为主要前端,并且我创建了许多插件以在启动时加载到 DemoMap 中并且它们正在运行。但是,我不是很清楚如何让我的自定义插件访问主地图控件。
我在 DemoMap 的主窗体中看到,有 App.Map
属性 作为主地图控件的句柄(对吗?),如果这是真的,那么我想我需要在每个插件启动的时候传入吗?
最重要的是,什么是最 efficient/best 允许从所有自定义插件在整个应用程序中访问主地图控件的方法? (我在 .Net 4.5.2 上使用 DotSpatial 2.0 库)
源自 Extension
并通过 App.Map
属性.
AppManger
提供的地图
扩展程序(插件)可以通过 App.Map
属性 访问地图。派生自 Extension
的任何 class 都可以访问,因此不需要将其传递到插件中。
允许您访问 属性 的 AppManager 是通过 MEF 自动注入的。
这是一个示例扩展
public class SimpleMapPlugin : Extension
{
public SimpleMapPlugin()
{
// Access App.Map as needed.
}
}