コード例 #1
0
 public void TestSerializeStringSchema()
 {
     IValueSchema<string> schema = new StringSchema {AllowNull = true,
         DefaultValue = "abc",
         MaxLength = 100,
         MinLength = 2,
         PossibleValues = new[]{"abc","def"}
     };
     JsonSchemaSerializationVisitor visitor=new JsonSchemaSerializationVisitor();
     schema.Accept(visitor);
     Assert.AreEqual(typeof(string),visitor.ValueType);
     Assert.AreEqual(typeof(StringSchema),visitor.SchemaType);
     Assert.IsNotNull(visitor.JsonValue);
     Assert.AreNotEqual(0,visitor.JsonValue.Length);
 }
コード例 #2
0
 public void TestDeserializeIntSchema()
 {
     IValueSchema<int?> schema = new IntSchema
     {
         AllowNull = false,
         DefaultValue = 10,
         MaxValue = 100,
         MinValue = 2,
         PossibleValues = new int?[] { 10, 20, 30, 100 }
     };
     JsonSchemaSerializationVisitor visitor = new JsonSchemaSerializationVisitor();
     schema.Accept(visitor);
     IValueSchema<object> vs = JsonSchemaDeserializer.Deserialize(visitor.SchemaType, visitor.JsonValue);
     Assert.IsNotNull(vs);
     Assert.AreEqual(typeof(int?), vs.Type);
 }
コード例 #3
0
 public void TestSerializeIntSchema()
 {
     IValueSchema<int?> schema = new IntSchema
                                     {
                                         AllowNull = false,
                                         DefaultValue = 10,
                                         MaxValue = 100,
                                         MinValue = 2,
                                         PossibleValues = new int?[] {10, 20, 30, 100}
                                     };
     JsonSchemaSerializationVisitor visitor = new JsonSchemaSerializationVisitor();
     schema.Accept(visitor);
     Assert.AreEqual(typeof(int?), visitor.ValueType);
     Assert.AreEqual(typeof(IntSchema), visitor.SchemaType);
     Assert.IsNotNull(visitor.JsonValue);
     Assert.AreNotEqual(0, visitor.JsonValue.Length);
 }
コード例 #4
0
 /// <summary>
 /// Serializes the property.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="value">The value.</param>
 /// <param name="schema">The schema.</param>
 /// <returns></returns>
 public  PropertyElement Serialize(string name,object value,IValueSchema<object> schema)
 {
     PropertyElement element=new PropertyElement();
     JsonSchemaSerializationVisitor visitor=new JsonSchemaSerializationVisitor();
     schema.Accept(visitor);
     Action<PropertyElement, object> action;
     if(_setMap.TryGetValue(visitor.ValueType,out action))
     {
         action.Invoke(element,value);
     }
     else
     {
         StringWriter writer=new StringWriter();
         _serializer.Serialize(writer,value);
         element.ValString = writer.ToString();
     }
     element.SchemaType = visitor.SchemaType.FullName;
     element.TypeOfValue = visitor.ValueType.FullName;
     element.SchemaBody = visitor.JsonValue;
     return element;
 }