【问题标题】:How can COM control be extended in .NET (C#)?如何在 .NET (C#) 中扩展 COM 控件?
【发布时间】:2012-01-14 14:57:57
【问题描述】:

我在工作的小工具中使用 MapPoint COM。它从文本文件中获取地址并作为停靠点导入到 MapPoint。

据我所知,我可以使用的功能或方法并不多,可以充分利用 MapPoint COM。这让我想到一个问题,如果可以的话,如何扩展 COM 以充分利用它?

以下是我所说的扩展的一些想法

  • 航点的外部列表(数据源)
  • MapPoint.ActiveMap.ActiveRoute.Waypoints 的自定义事件(即添加、删除、更改选择等时){不重要,如果自定义 List 可以设置为数据源,请参阅 aove}
  • 自定义 MapPoint.Waypoint 对象

【问题讨论】:

  • Mappoint COM?!?我什至无法在谷歌中找到它。 AFAIK MapPoint 是 Microsoft 提供的一种技术,可提供可编程的 Web 服务,codeproject.com/KB/cs/mappoint.aspx - 它是一个 COM 对象,这是怎么回事?
  • 微软提供了与地图点网络服务有关的 MapPoint SDK。使用地图点独立软件安装,您可以在参考中包含 COM 对象。更多这里msdn.microsoft.com/en-us/library/gg674771.aspx
  • 只有微软可以做到这一点。他们实现了 COM 服务器,你不能扩展它。
  • 好的,COM 中有 MapPoint.Location 的接口,我至少需要修改它。我对继承知之甚少,但我看不到如何扩展它
  • @Jeremy,您的 Google 已损坏(或者您拼写错误!)。 MapPoint Web 服务在过去一个月左右停止。桌面 MapPoint 应用程序的存在时间更长,并且仍在维护(2011 年是最新版本),它是 Streets & Trips 的老大哥,提供业务扩展和 COM API - 并且仍然为 Microsoft 带来利润。有关社区站点,请参见 MP2KMag.com; MSDN 也有很多报道;我为 MapPoint 扩展经营一个商业网站。

标签: c# .net com extend mappoint


【解决方案1】:

@Richard Brightwell 的包装类可能有助于提供您想要的一些东西,但我认为总体而言您将受到限制。正如@Hans Passant 所说,只有 Microsoft 可以更改 MapPoint 应用程序的内部结构。

不清楚您的航点数据源是什么意思,但您可以轻松编写代码,从某处(任何地方)读取航点数据,然后使用它在 MapPoint 中一次创建一个航点(和/或图钉) .

除非您的包装类触发中间事件,否则您永远无法添加自己的事件类型。例如。类方法 X 可能会做 X。X 包含步骤 a、b、c 和步骤 b 在您的代码中触发一个事件

【讨论】:

    【解决方案2】:

    编写一个封装 COM 控件或库,以公开 MapPoint COM 对象的功能以及您自己编写的新功能。

    编辑:这里有更多关于包装类的内容:What is a wrapper class?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      相关资源
      最近更新 更多