2010-03-31 26 views
5

Basado en el ejemplo c# dynamic with XML, modifiqué DynamicXml.cs y analicé mi cadena xml. la parte modificada es la siguienteSerializar el objeto dinámico de C# al objeto JSON para ser consumido por javascript

public override bool TryGetMember(GetMemberBinder binder, out object result) 
    { 
     result = null; 
     if (binder.Name == "Controls") 
      result = new DynamicXml(_elements.Elements()); 
     else if (binder.Name == "Count") 
      result = _elements.Count; 
     else 
     { 
      var attr = _elements[0].Attribute(
       XName.Get(binder.Name)); 
      if (attr != null) 
       result = attr.Value; 
      else 
      { 
       var items = _elements.Descendants(
        XName.Get(binder.Name)); 
       if (items == null || items.Count() == 0) 
        return false; 
       result = new DynamicXml(items); 
      } 
     } 
     return true; 
    } 

la cadena XML para analizar:

   "< View runat='server' Name='Doc111'>" + 
        "< Caption Name='Document.ConvertToPdf' Value='Allow Conversion to PDF'></ Caption>" + 
        "< Field For='Document.ConvertToPdf' ReadOnly='False' DisplayAs='checkbox' EditAs='checkbox'></ Field>" + 
        "< Field For='Document.Abstract' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" + 
        "< Field For='Document.FileName' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" + 
        "< Field For='Document.KeyWords' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" + 
        "< FormButtons SaveCaption='Save' CancelCaption='Cancel'></ FormButtons>" + 
       "</ View>"; 

dinámica forma = new DynamicXml (markup_fieldsOnly);

¿hay alguna forma de serializar el contenido de este objeto dinámico (pares de nombre y valor dentro de la dinámica) formulario como objeto JSON y enviado al lado del cliente (navegador)?

Respuesta

1

He oído Json.Net funciona bastante bien, aunque nunca lo he usado.

Cuestiones relacionadas