Domanda

Ho una classe che ha le seguenti proprietà:

public class Author {
  public string FirstName { get; set; }
  public string LastName { get; set; }
}

Poi, ho una lista degli autori in questo modo:

List<Author> authors = new List<Author> ();

authors.add(
  new Author { 
    FirstName = "Steven",
    LastName = "King"
  });

authors.add(
  new Author { 
    FirstName = "Homer",
    LastName = ""
  });

Ora, sto cercando di usare LINQ to XML al fine di generare il codice XML che rappresenta il mio Lista Autori.

new XElement("Authors",
  new XElement("Author", 
    from na in this.Authors
    select new XElement("First", na.First)))

Il blocco di cui sopra non genera l'XML come mi aspetto che. Quello che ottengo è:

<Authors>
  <Author>
    <First>Steven</First>
    <First>Homer</First>
  </Author>
<Authors>

Quello che voglio l'output XML a guardare come è:

<Authors>
  <Author>
    <First>Steven</First>
    <Last>King</Last>
  </Author>
  <Author>
    <First>Homer</First>
    <Last></Last>
  </Author>
</Authors>

Qualsiasi aiuto su come ottenere il XML a guardare come ho bisogno di sarebbe immensamente apprezzato!

Altri suggerimenti

Lo so che si sta utilizzando C #, ma questo è una volta quando si dovrebbe seriamente considerare l'aggiunta di un progetto VB.NET alla soluzione. Letterali XML sono perfetti per questo e lo rendono molto più facile.

Per ottenere il codice XML dall'elenco Autore, si dovrebbe fare questo:

Function GetAuthorsXML(authors As List(Of Author)) As XElement
    Return <Authors>
               <%= from a in authors _
                   select <Author>
                              <First><%= a.FirstName %></First>
                              <Last><%= a.LastName %></Last>
                          </Author> %>
           </Authors>
End Function
scroll top