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
<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 EnumType
Value1
Value2
Value3
End Enum
Public Enum EnumWithValues
<EnumMember(Value:="None")>
None
<EnumMember(Value:="Member 1")>
Value1
<EnumMember(Value:="Value2")>
Value2
End Enum
Public Partial Class HelloWithEnumMap
Public Overridable Property EnumProp As Dictionary(Of EnumType, EnumType) = New Dictionary(Of EnumType, EnumType)
Public Overridable Property EnumWithValues As Dictionary(Of EnumWithValues, EnumWithValues) = New Dictionary(Of EnumWithValues, EnumWithValues)
Public Overridable Property NullableEnumProp As Dictionary(Of Nullable(Of EnumType), Nullable(Of EnumType)) = New Dictionary(Of Nullable(Of EnumType), Nullable(Of EnumType))
Public Overridable Property EnumFlags As Dictionary(Of EnumFlags, EnumFlags) = New Dictionary(Of EnumFlags, EnumFlags)
Public Overridable Property EnumStyle As Dictionary(Of EnumStyle, EnumStyle) = New Dictionary(Of EnumStyle, EnumStyle)
End Class
End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsonl/oneway/HelloWithEnumMap HTTP/1.1
Host: test.servicestack.net
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"enumProp":{"Value1":"Value1"},"enumWithValues":{"None":"None"},"nullableEnumProp":{"Value1":"Value1"},"enumFlags":{"0":0},"enumStyle":{"lower":"lower"}}