AXL API - CS文件的处理时间非常长

时间:2018-03-06 13:43:36

标签: c# wpf visual-studio cisco-axl

只需要在正确的方向上找到一个点。

我已经通过Cisco提供的说明创建了Cisco Unified Call Manager API,CUCM的API称为AXL。 它目前在我的C#WPF项目中运行得很好(我已经成功检索了一些手机数据),问题是API在一个长度为345K的单个CS文件中。当我尝试使用API​​进行第一次操作时(编译完成后),这会造成极长的延迟。

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

  

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

     

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

我尝试使用this帖子中用户大脑备份的说明预生成它。不幸的是,API的第一次使用仍然是大约45秒(它确实减少了大约一分钟)。我不太了解Visual Studio中的调试工具,因此不确定如何检查导致问题的确切原因(但它看起来像是与生成XML相关的问题)。

我想知道是否有人可以推荐一种方法从CS文件中删除不必要的方法(99%的方法不会被使用),而不必手动重新创建它。任何类型的工具都可以从CS文件中提取/删除方法及其依赖关系,这绝对是非常棒的。

3 个答案:

答案 0 :(得分:0)

有一种方法可以检查您的方法是否已被使用,以及是否使用过多少次以及检查此方法。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx

答案 1 :(得分:0)

削减AXL WSDL本身并重新编译可能是有意义的 - 如上所述,你不可能在整个架构附近使用它。

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

答案 2 :(得分:0)

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

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

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

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