using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Test.ServiceModel;
namespace Test.ServiceModel
{
public enum EnumAsInt
{
Value1 = 1000,
Value2 = 2000,
Value3 = 3000,
}
[Flags]
public enum EnumFlags
{
Value0 = 0,
Value1 = 1,
Value2 = 2,
Value3 = 4,
Value123 = 7,
}
public enum EnumStyle
{
lower,
UPPER,
PascalCase,
camelCase,
camelUPPER,
PascalUPPER,
}
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,
}
public enum EnumType
{
Value1,
Value2,
Value3,
}
[Flags]
public enum EnumTypeFlags
{
Value1 = 0,
Value2 = 1,
Value3 = 2,
}
public enum EnumWithValues
{
[EnumMember(Value="None")]
None,
[EnumMember(Value="Member 1")]
Value1,
[EnumMember(Value="Value2")]
Value2,
}
public partial class HelloWithEnum
{
public virtual EnumType EnumProp { get; set; }
public virtual EnumTypeFlags EnumTypeFlags { get; set; }
public virtual EnumWithValues EnumWithValues { get; set; }
public virtual EnumType? NullableEnumProp { get; set; }
public virtual EnumFlags EnumFlags { get; set; }
public virtual EnumAsInt EnumAsInt { get; set; }
public virtual EnumStyle EnumStyle { get; set; }
public virtual EnumStyleMembers EnumStyleMembers { get; set; }
}
}
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"}