【问题标题】:Pushing realtime data to microsoft visio using C# and WCF/ServiceCallback使用 C# 和 WCF/ServiceCallback 将实时数据推送到 microsoft visio
【发布时间】:2014-02-09 16:30:59
【问题描述】:

我需要一个从 VISIO 文档到 WCF 服务的连接。

我发现以下非常有用的教程:

How do I call WCF client from Excel 2003 VBA?

http://www.codeproject.com/Articles/662009/Streaming-realtime-data-to-Excel

我在使用 C# 创建 WCF 服务和客户端方面拥有丰富的经验 - 但在 VBA/VISIO-Programming 中没有。第一个链接有助于将 VBA 客户端连接到 WCF 服务并调用一些方法。这很完美。我们有一个 VISIO 形状,它充当按钮并调用 WCF 服务的方法并显示结果。我们知道如何调用方法和显示值。可以单击一个按钮,向服务器执行请求并获得一些结果。

问题是:如何在没有用户点击按钮的情况下收集结果?

VBA 不支持定期从服务器收集数据的后台操作。

第二篇文章介绍了如何使用 EXCEL-DNA 将数据推送到 EXCEL。我找不到任何信息这是否也适用于 VISIO。 EXCEL-DNA 将创建一个 *.XLL 文件,它是 EXCEL 的插件,我认为它不适用于 VISIO。

是否有任何解决方案可以使用 ServiceCallback 将 VISIO 客户端连接到 WCF/C# 服务?

【问题讨论】:

  • 不,没有办法做到这一点
  • 我真诚地希望你是错的。
  • 您使用的是什么版本的 Visio?因为有多种方法可以将 Visio 连接到外部数据源,但仅适用于专业版/高级版。
  • 好主意。我们使用的是 VISIO 2010 Standard :-( 而且我们更喜欢只使用查看器。
  • 在这种情况下,可以将查看器包装在应用程序中,并使用 COM api 来处理带有数据的形状。

标签: c# vba wcf visio


【解决方案1】:

我很确定 WCF 双工绑定仅用于 WCF 场景(即,服务和客户端都是 WCF)。

这样做的原因是 WCF 回调的工作方式是它导致客户端还托管一个临时服务终结点供服务回调。

上述 Excel 解决方案有效的原因是 Excel DNA 是一个 .net 包装器,我敢打赌它使用 System.ServiceModel 来使用服务。

所以我同意上述 T McKeown 的观点,他说没有任何方法可以做到这一点。抱歉,这不是您想要的答案。

【讨论】:

  • Hmpf。我找到了一种使用 Application.OnTime(仅适用于 Excel)的方法,它使我们能够从服务器轮询值。但是为什么微软不把这个方法放在 VBA for VISIO 中呢?我希望有一种方法可以对值进行轮询。
猜你喜欢
  • 1970-01-01
  • 2018-10-01
  • 2013-02-22
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多