我们的两个应用程序是具有Flex 3前端和SOAP样式WCF后端的Web应用程序。为了与后端进行通信,我通过Flex Builder 3生成Web服务客户端类。一切正常,但维护这些生成的类非常烦人,我正在寻找一种更好的方法来做事(无需做专业当然要重写。这是问题所在:
似乎每个人都只是忍受这些问题。必须有一些替代方法来为其他人使用的Flex生成Web服务代理类。由于我被时间禁止使用RESTful通信层并重写前端,你有什么建议?
答案 0 :(得分:1)
您可以使用多种机制之一将WSDL读入程序并生成所需的任何Flex代码。
最重要的是,如果您遇到自动化工具问题,那么可以通过实际方法创建自己的工具。
答案 1 :(得分:1)
不幸的是,WSDL中的Flex 3代码生成缺少Bindable标记,手动处理该问题是一场噩梦...尤其是如果你有一个包含大量类型的复杂场景。
您可以手动添加标记并从所有变量声明中删除“generated.webservices”以使代码编译...然后您还有另一个问题:
如果我必须再次生成de代码怎么办?要么我再做一切......或者我将有一堆运行时只检测到错误......
我使用ANT进行了一个小技巧:
将Bindable添加到所有类; 从所有变量声明中删除完整的命名空间;
<target name="updateGeneratedCode" >
<replace dir="PATH TO YOUR GENERATED CODE">
<include name="**/*.as"/>
<replacetoken>public class</replacetoken>
<replacevalue><![CDATA[[Bindable]public class]]></replacevalue>
</replace>
<replace dir="PATH TO YOUR GENERATED CODE" value=":">
<include name="**/*.as"/>
<replacetoken>:generated.webservices.</replacetoken>
</replace>
</target>
注意:替换令牌“:generated.webservices”。在您的情况下可能会有所不同,因此您可能希望用生成的命名空间替换它。
到目前为止,它对我有用。
希望它有所帮助!
Antonio Inacio