Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Test.ServiceModel
Namespace Global
    Namespace Test.ServiceModel
        Public Enum EnumAsInt
            Value1 = 1000
            Value2 = 2000
            Value3 = 3000
        End Enum
        <Flags>
        Public Enum EnumFlags
            Value0 = 0
            Value1 = 1
            Value2 = 2
            Value3 = 4
            Value123 = 7
        End Enum
        Public Enum EnumStyle
            lower
            UPPER
            PascalCase
            camelCase
            camelUPPER
            PascalUPPER
        End Enum
        Public Enum EnumStyleMembers
            <EnumMember(Value:="lower")>
            Lower
            <EnumMember(Value:="UPPER")>
            Upper
            <EnumMember(Value:="PascalCase")>
            PascalCase
            <EnumMember(Value:="camelCase")>
            CamelCase
            <EnumMember(Value:="camelUPPER")>
            CamelUpper
            <EnumMember(Value:="PascalUPPER")>
            PascalUpper
        End Enum
        Public Enum EnumType
            Value1
            Value2
            Value3
        End Enum
        <Flags>
        Public Enum EnumTypeFlags
            Value1 = 0
            Value2 = 1
            Value3 = 2
        End Enum
        Public Enum EnumWithValues
            <EnumMember(Value:="None")>
            None
            <EnumMember(Value:="Member 1")>
            Value1
            <EnumMember(Value:="Value2")>
            Value2
        End Enum
        Public Partial Class HelloWithEnum
            Public Overridable Property EnumProp As EnumType
            Public Overridable Property EnumTypeFlags As EnumTypeFlags
            Public Overridable Property EnumWithValues As EnumWithValues
            Public Overridable Property NullableEnumProp As EnumType?
            Public Overridable Property EnumFlags As EnumFlags
            Public Overridable Property EnumAsInt As EnumAsInt
            Public Overridable Property EnumStyle As EnumStyle
            Public Overridable Property EnumStyleMembers As EnumStyleMembers
        End Class
    End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /json/oneway/HelloWithEnum HTTP/1.1 
Host: test.servicestack.net 
Accept: application/json
Content-Type: application/json
Content-Length: length
{"enumProp":"Value1","enumTypeFlags":0,"enumWithValues":"None","nullableEnumProp":"Value1","enumFlags":0,"enumAsInt":"Value1","enumStyle":"lower","enumStyleMembers":"lower"}