Logo depois de eu escrever o post anterior sobre XML Axis Properties e LINQ eu fico sabendo desse novo projeto da Microsoft, ainda em Alpha, mas liberado para a comunidade: Linq To XSD. Como o projeto ainda está muito no começo, esse nome pode não ficar.

Ele oferece uma solução de X/O Mapping, ou seja, mapeamento XML para Objeto. Ele cria objetos para o seu XML. E o legal é que ele o faz a partir de um schema XSD, e mantém suas restrições, tipos e outros detalhes. Por exemplo, vocês devem ter notado que tive que fazer cast para recuperar uma propriedade booleana do XML:

   10         Dim blnLogLigado As Boolean = CBool(consultaXML.<app>.@logLigado)

Com LINQ to XSD isso não precisaria ser feito. Veja como fica:

   14         static void Main(string[] args)

   15         {

   16 

   17             var ArquivoXML = Path.Combine(

   18                 Directory.GetParent

   19                 (

   20                     Path.GetDirectoryName

   21                     (

   22                         Assembly.GetExecutingAssembly().Location

   23                     )

   24                 ).Parent.FullName,

   25                 @"configuracoes.xml");

   26             var config = algumacoisa.configuracoes.Load(ArquivoXML);

   27             Console.WriteLine(@"O id da aplicação é ""{0}"" e o log está {1}.",

   28                 config.app.appId.ToString(),

   29                 config.app.logLigado ? "ligado" : "desligado");

   30 

   31             Console.WriteLine("Caminhos:");

   32 

   33             foreach (var caminho in config.caminhosDePesquisa.caminho)

   34             {

   35                 Console.WriteLine(@"O endereço ""{0}"" está {1}.",

   36                     caminho.enderecoFisico,

   37                     caminho.habilitado ? "habilitado" : "desabilitado");

   38             }   

   39         }

O problema foi corrigido. Note que os dados AppID e LogLigado já estão convertidos para o tipo correto (linhas 28 e 29).

Ah, é legal observar, já que falei do VB no post anterior, que isso praticamente resolve o problema de acesso ao XML que o C# tinha antes, apesar de ainda estarem em fase Alpha e sem previsão de lançamento.

E como eu não tinha mostrado ainda o resultado final, segue abaixo:

ResultadoLinqToXSD

Se quiserem saber mais comentem aqui no blog que eu dou uma aprofundada. 


Postado na(s) categoria(s) LINQ pelo Giovanni Bassi em 27 de fevereiro de 2008 às 16:23 | Tags: ,

Ninguém avaliou. Dê sua nota!

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comentar


(Vai mostrar seu Gravatar)  

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading



Quem é Giovanni Bassi

Giovanni Bassi Sou uma pessoa apaixonada por tecnologia e especificamente por .Net. Sou consultor independente especialista em .Net, focado em arquitetura e melhores práticas. Tenho dezenas de artigos publicados na .Net Magazine, revista da qual sou editor técnico. Ministro palestras e cursos de vez em quando, e quando dá tempo eu respiro um pouco. Mais detalhes nesta página.

Calendário

«  dezembro 2008  »
seteququsedo
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234
Ver detalhamento de posts no calendário

Postagens recentes

Comentários recentes

Disclaimer / Aviso
As opiniões colocadas neste blog são minhas e pessoais e não expressam necessariamente as opiniões de meus empregadores, pareceiros e amigos. Da mesma forma, os comentários feitos por leitores do blog não expressam a minha opinião.

© Copyright 2008 .Net Unplugged
Sign in