0

只需要在正确的方向上指出这一点。

我通过 Cisco 提供的说明创建了 Cisco Unified Call Manager API,CUCM 的 API 称为 AXL。它目前在我的 C# WPF 项目中并且工作得很好(我已经成功检索了一些电话数据),问题是 API 位于一个 345K 行长的单个 CS 文件中。当我尝试使用 API 进行第一个操作时(在它编译后),这会导致非常长的延迟。

正如思科论坛上的一位用户所建议的那样:

您的问题很有可能与 .net 框架生成 xml 序列化程序集所花费的时间有关。

在 .net 上使用 AXL 时预生成 xml 序列化程序集,您的第一个响应会快得多。

我尝试使用线程中用户大脑备份的说明预先生成它。不幸的是,API 的第一次使用仍然是大约 45 秒(它确实减少了大约一分钟)。我对 Visual Studio 中的调试工具不是非常精通,所以不确定如何检查究竟是什么导致了问题(但它肯定看起来像是与生成 XML 相关的问题)。

我想知道是否有人可以推荐一种方法来从 CS 文件中删除不必要的方法(其中 99% 无论如何都不会使用),而无需手动重新创建它。任何可以从 CS 文件中提取/删除方法及其依赖项的工具都非常出色。

4

3 回答 3

0

有同样的问题,延迟几乎无法使用。我发现有两件事几乎可以立即解决这个问题。

  1. 不要使用 WSDL。编写您自己的方法来处理 SOAP 请求。需要时间并且容易出错,但结果几乎是即时的。

  2. 使用可以处理大型文本文件的工具(例如 Notpad++)打开您的 WSDL 生成的代码文件,并仅取出您需要的方法。这是我选择的方法,效果很好。

另外,我相信您可以只使用 executeSQLQuery 方法并删除其余代码的大部分,但我还没有尝试过。上面的每种方法我都尝试过,但没有预先生成 xml 序列化。我发现问题出在生成的 C# axl 代码文件大小上。

于 2018-08-12T14:32:54.570 回答
0

有一种方法可以检查您的方法是否已使用,以及是否使用了多少次以及在哪里检查。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx
于 2018-03-06T13:48:21.337 回答
0

削减 AXL WSDL 本身并重新编译可能是有意义的 - 如前所述,您不太可能在整个模式附近的任何地方使用。

您应该能够只编辑 AXLAPI.wsdl 并删除除您实际使用的项目之外的所有 和 元素。

于 2018-03-07T17:39:48.347 回答