Beispiel #1
0
        /// <summary>
        /// Serializes the schema.
        /// </summary>
        /// <param name="schema">The schema.</param>
        /// <param name="schemaType">Type of the schema.</param>
        /// <param name="schemaBody">The schema body.</param>
        public void SerializeSchema(IValueSchema <object> schema, out Type schemaType, out string schemaBody)
        {
            SchemaJsonSerializationVisitor visitor = new SchemaJsonSerializationVisitor();

            schema.Accept(visitor);
            schemaType = visitor.SchemaType;
            schemaBody = visitor.JsonValue;
        }
 public void Accept(IValueSchemaVisitor visitor)
 {
     _real.Accept(visitor);
 }
 /// <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;
 }