为什么c#仅仅因为模式中的xs:选项而不在VisualStudio中使用addby服务引用从wsdl创建代码?
我们使用php创建了一个soap服务器,并且很少有函数根据传递的参数给出不同的xml元素结果 为了进一步解释,函数接受参数a,根据接收到的数据,它可以返回两个不同数组(complextype)中的任意一个,子元素的数目不同 e、 g 为了解释这种可能的差异,我们在模式中使用了选择,从而试图确定结果可以是选择中的任何单个元素,无论是简单的还是复杂的类型 从理论上讲,这听起来很合乎逻辑,可以与php的soap客户端配合使用,但当我们尝试在表单应用程序中使用visual studio的添加服务引用功能时;该应用程序未能为其创建代码,理由是由于某些难以理解的原因,不允许使用xs:choice 现在我真正想知道的是,我需要对我的wsdl或soap服务器进行哪些更改才能使其正常工作。我们认为解决办法是只将结果固定到一个可能的场景,并利用完全不同的功能来确定另一个场景的结果,从而避免使用选择,但坦率地说,这似乎太过多余和怪异为什么c#仅仅因为模式中的xs:选项而不在VisualStudio中使用addby服务引用从wsdl创建代码?,c#,php,web-services,soap,xsd,C#,Php,Web Services,Soap,Xsd,我们使用php创建了一个soap服务器,并且很少有函数根据传递的参数给出不同的xml元素结果 为了进一步解释,函数接受参数a,根据接收到的数据,它可以返回两个不同数组(complextype)中的任意一个,子元素的数目不同 e、 g 为了解释这种可能的差异,我们在模式中使用了选择,从而试图确定结果可以是选择中的任何单个元素,无论是简单的还是复杂的类型 从理论上讲,这听起来很合乎逻辑,可以与php的soap客户端配合使用,但当我们尝试在表单应用程序中使用visual studio的添加服务引用功能
有什么我错过的吗?请告诉我你有什么想法。谢谢 创建服务引用机制尝试将模式映射到C#类,并且C#类中没有与模式中的
选项
相对应的结构-类不能具有一个属性或另一个属性的值,但不能同时具有这两个属性的值
我的建议是将choice
替换为可选元素序列,相应的C#类将为每个元素都有属性——其中只有一个元素有值,另一个元素将为null
,因为PHP服务一次只返回其中一个元素的值
if a =9 then outcome is array/struct ,,,,
a[delta]=20 ,,,
a[sigma]=yellow
if a =3 ,
a[aTotallyDifferentBallgame]=Omaha ,,,
a[t]=1 ,,,
a[theNumberOfElementsCanVary]=yup