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 21:23 | Tags: ,

Comentários


Portugal J3Grave
abril 27. 2009 06:37
J3Grave
Saudaçoes,

desde ja agradeco pelo seu Post, parece-me ser mt util.
Gostava de saber se tem algum post que ensine a fazer a colocacao de um ficheiro xsd utilizando c# para uma colona em base de dados sql server?

Ficaria mt agradecido. brigado  

no site

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.

Busca

Selos

Eu vou ao TechEd Brasil 2010, e você?

MVP

MCPD

MCSD

.Net Magazine

Abaixo ao if!

Calendário

«  julho 2010  »
seteququsedo
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Ver detalhamento de posts no calendário

Blogs interessantes

    OPMLDownload OPML file

    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 2010 .Net Unplugged
    Log in