public static void Main()
var parameter = new RulesCommandServiceAppendRequest()
Data = new RuleInputModel()
DestinationIp = "1.1.1.1",
WebSerializer.ToQueryString(parameter).Dump();
public class RulesCommandServiceAppendRequest
public Chain Chain {get; set;}
[WebSerializer(typeof(RuleInputModelSerializer))]
public RuleInputModel Data {get; set;}
public class RuleInputModel
public string Protocol {get; set;}
public string SourceIp {get; set;}
public string DestinationIp {get; set;}
public string SourcePort {get; set;}
public string DestinationPort {get; set;}
public string Jump {get; set;}
public class RuleInputModelSerializer : IWebSerializer<RuleInputModel>
public void Serialize(ref WebSerializerWriter writer, RuleInputModel value, WebSerializerOptions options)
var prefix = writer.NamePrefix;
writer.NamePrefix = "Data.";
WebSerializer.ToQueryString(writer, value, options);
writer.NamePrefix = prefix;