2010-03-31 9 views
5

Na podstawie przykładu c# dynamic with XML, zmodyfikowałem DynamicXml.cs i przeanalizowałem ciąg znaków xml. zmodyfikowana część jest następującySerialize C# obiekt dynamiczny do obiektu JSON, który ma być używany przez 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; 
    } 

Łańcuch xml analizowania:

   "< 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>"; 

dynamiczna forma = nowy DynamicXml (markup_fieldsOnly);

czy istnieje sposób na serializację zawartości tego obiektu dynamicznego (pary wartości nazw wewnątrz dynamicznej)? formularz jako obiekt JSON i wysłany do strony klienta (przeglądarki)?

Odpowiedz

1

Słyszałem, że Json.Net działa całkiem nieźle, chociaż nigdy sam tego nie używałem.

Powiązane problemy