wcf - 从 WSDL for Flex 3 创建可绑定(bind)类

标签 wcf actionscript-3 data-binding flex3 wsdl

我们的两个应用程序是具有 Flex 3 前端和 SOAP 样式 WCF 后端的 Web 应用程序。为了与后端通信,我通过 Flex Builder 3 生成 Web 服务客户端类。一切正常,但维护这些生成的类非常烦人,我正在寻找一种更好的方法来做事(不必做主要的重写,当然)。问题如下:

  1. 我使用 Flex 库来管理应用程序之间共享的组件。其中一些依赖于生成的类,因此我需要在它们自己的库中使用 WSDL 生成的类。然而,Flex Builder 3 仅为 Flex 应用程序 生成类,因此我必须在应用程序的源代码树中生成文件,然后每次都手动移动这些文件。这也引入了 Eclipse 管理源代码的方式的奇怪副作用(为什么它不能像其他 IDE 那样只监视 FS?)。
  2. 我们使用 MXML 中的数据绑定(bind)以声明方式将数据绑定(bind)到 UI。我喜欢数据绑定(bind)。不幸的是,WSDL 生成的代码中的类不支持绑定(bind)。因此,我选择创建一个程序来更改 ActionScript 类,向它们添加 [Bindable] 元数据。每次我们重新生成代码时都必须运行它。
  3. Flex 有一个非常严重的错误,至少从 3 月份就知道了,但仍未修复:http://bugs.adobe.com/jira/browse/SDK-19811 .我最近发现了这一点,因为它将一些 XML 字符(如 < 和 &)双重编码为​​ < 和 &。因此,我还必须为此向 ActionScript 操作程序添加一个解决方法。
  4. Flex Builder 中的 WSDL 代码生成器创建 String、Boolean、Int 和其他内置类型的类!我们总是不得不删除这些源文件,以防止 Flex 编译器有时出现问题。

在我看来,每个人都只是忍受这些问题似乎不太可能。必须有一些替代方法可以为其他人正在使用的 Flex 生成 Web 服务代理类。由于时间不允许我将通信层设为 RESTful 并在 Silverlight 中重写前端,您有什么建议?

最佳答案

您可以使用多种机制中的一种将 WSDL 读入程序并生成您需要的任何 flex 代码。

  1. 您可以使用两个 ServiceDescription 类之一来读入 WSDL 并根据对象模型检查其内容;
  2. 您可以在 Visual Studio 中使用 T4 模板,通过一些自定义工作将 WSDL 公开给模板(可能通过 ServiceDescription 类,如上所述)
  3. 您可以使用 XSLT 将 WSDL 转换为您喜欢的代码
  4. 您可以编写一些独立的程序来读取 WSDL(作为 XML 或对象模型),然后只为您的代理代码发出您想要的文本。

底线是,如果您在使用自动化工具时遇到问题,那么有一些实用的方法可以创建您自己的工具。

关于wcf - 从 WSDL for Flex 3 创建可绑定(bind)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/991274/

相关文章:

c# - WCF SOAP 服务不能返回 JSON 作为输出吗?

ios - {FlashDevelop} 使用 AIR 和 FlashDevelop 构建 iOS

flash - 溢出 :hidden equivalent for movieclip

asp.net - 如何禁用 ASP.NET 页面的自动数据绑定(bind)?

Asp.Net 和 Shadowbox

c# - 在 Windows 应用商店应用程序中使用 Azure 表存储的最佳实践是什么?

c++ - 如何使用命名管道从 C++ 调用 WCF 方法?

c# - WCF- "The underlying connection was closed: The connection was closed unexpectedly"

actionscript-3 - AS3 本地连接与 SSL

java - 使用数据绑定(bind)时,RecyclerView 项目属性会自动更改