.NET WSDL生成xs:choice name选项绑定枚举

.NET WSDL生成xs:choice name选项绑定枚举,.net,web-services,visual-studio-2010,c#-4.0,.net,Web Services,Visual Studio 2010,C# 4.0,我正在生成Java web服务WSDL,然后每次进行更改时将其导入C#应用程序。每次执行此操作时,都会重新生成xs:choice元素,但通常会根据首先生成的元素而使用不同的数字。例如,当我导入WSDL时,它会生成ItemChoiceType1和ItemChoiceType2。下一次导入WSDL时(更改后),它将切换ItemChoiceType1和ItemChoiceType2,因此我必须重新编码使用这些ItemChoiceType的位置。是否需要重命名或指定这些构造的名称,或者让它们每次都以相同

我正在生成Java web服务WSDL,然后每次进行更改时将其导入C#应用程序。每次执行此操作时,都会重新生成
xs:choice
元素,但通常会根据首先生成的元素而使用不同的数字。例如,当我导入WSDL时,它会生成
ItemChoiceType1
ItemChoiceType2
。下一次导入WSDL时(更改后),它将切换
ItemChoiceType1
ItemChoiceType2
,因此我必须重新编码使用这些
ItemChoiceType
的位置。是否需要重命名或指定这些构造的名称,或者让它们每次都以相同的方式生成


谢谢

这是WSDL.EXE的默认行为。因为xs:choice元素是未命名的序列,所以它们正在接收由WSDL.EXE生成的名称

据我所知,如果您重新导入WSDL,.NET端没有一个解决方法不会被覆盖

如果您对Java WSDL有一定的控制权,那么可以指定complexTypes来包装序列,并为每种类型指定一个名称。这可能会生成一个更有用的WSDL供您试用。

因此此对象(myObject)具有一个属性(myProperty),该属性的类型在生成时可能会更改,并且其值是从枚举分配的。使用此属性设置器函数:

///从枚举设置属性值 /// 私有静态void属性设置(类型TypeRequired、对象targetObject、字符串propName、字符串fieldName) { var theDesiredValue=Enum.Parse(需要类型,字段名)

}

//用法
propertySetter(myObject.myProperty.GetType(),myObject,“myProperty”,“enumValue”)

我也有同样的问题,对解决方案非常感兴趣,不知道这与我的问题有什么关系,你能详细说明一下吗?
    Type t = targetObject.GetType();
    PropertyInfo info = t.GetProperty(propName);
    if ((info == null) || (!info.CanWrite))
        return;
    info.SetValue(targetObject, theDesiredValue, null);
    return;