如何在asmx Web服务中使用枚举

时间:2011-07-07 10:25:38

标签: vb.net web-services enums asmx

我正在使用visual basic编写一个asmx web服务,我想在我的Web服务中添加一个enum,它应该通过wsdl提供给Web服务的调用者。但是怎么办呢?我在web服务类中编写我的枚举,但它没有在wsdl中发布。我已经使用C#成功完成了这种事情,但我无法理解在VB中是如何完成的。

1 个答案:

答案 0 :(得分:2)

您不仅可以创建枚举,还必须创建一个方法,将该Enum的存在暴露给客户端。也就是说:如果你有一个包含Enum类型属性的类,该方法应该公开类:

Public Class MyClassType
    Public Enum MyEnum
        Value1, Value2
    End Enum
End Class
 <WebMethod()> _
Public Sub ExposeTypes(MyObject As MyClassType)
  'This will make the client recognize it will receive a  class (complex type) with the enum property 
End Sub

另一种方法是仅暴露枚举类型:

     Public Enum MyEnum
        Value1, Value2
    End Enum

  <WebMethod()> _
Public Sub ExposeTypes(enum As MyEnum)
  'This will make the client recognize it will receive a simple type
End Sub

这基本上是你可以做的,让客户端应用识别你的枚举,但你可能会做一些事情,比如首先生成合同,以避免这些“暴露”方法的方法。