Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么c#仅仅因为模式中的xs:选项而不在VisualStudio中使用addby服务引用从wsdl创建代码?_C#_Php_Web Services_Soap_Xsd - Fatal编程技术网

为什么c#仅仅因为模式中的xs:选项而不在VisualStudio中使用addby服务引用从wsdl创建代码?

为什么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的添加服务引用功能

我们使用php创建了一个soap服务器,并且很少有函数根据传递的参数给出不同的xml元素结果

为了进一步解释,函数接受参数a,根据接收到的数据,它可以返回两个不同数组(complextype)中的任意一个,子元素的数目不同

e、 g

为了解释这种可能的差异,我们在模式中使用了选择,从而试图确定结果可以是选择中的任何单个元素,无论是简单的还是复杂的类型

从理论上讲,这听起来很合乎逻辑,可以与php的soap客户端配合使用,但当我们尝试在表单应用程序中使用visual studio的添加服务引用功能时;该应用程序未能为其创建代码,理由是由于某些难以理解的原因,不允许使用xs:choice

现在我真正想知道的是,我需要对我的wsdl或soap服务器进行哪些更改才能使其正常工作。我们认为解决办法是只将结果固定到一个可能的场景,并利用完全不同的功能来确定另一个场景的结果,从而避免使用选择,但坦率地说,这似乎太过多余和怪异


有什么我错过的吗?请告诉我你有什么想法。谢谢

创建服务引用机制尝试将模式映射到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