Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Livro Vazquez : serializando objetos
Message
 
To
05/08/2003 20:20:32
Cleber Ferrari
Capta Tecnologia
Brazil
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Miscellaneous
Thread ID:
00817142
Message ID:
00817530
Views:
16
Oi Cleber,

O conceito é exatamente este! No livro, foi usada a classe wwXML do Rick Strahl como exemplo. Esta classe disponibiliza os métodos ObjectToXML() e XMLToObject(), responsáveis por serializar um objeto em XML e deserializá-lo, respectivamente.

Para objetos sem agregação (sem propriedades que são, elas próprias, outros objetos), o uso da serialização é bem tranqüilo. Os problemas podem começar a acontecer quando tentamos serializar objetos que contém objetos. Para serializarmos esta hierarquia, temos que percorrer o chamado "grafo" do objeto, ou seja, os objetos dos objeto tem que ser percorridos e serializados bem como os objetos dos objetos do objeto, caso existam; e por aí vai...

A classe wwXML está preparada para tratar esta questão. A propriedade lógica "lRecurseObjects" define se haverá geração de objetos agregados. Para evitar um "deadlock" neste trabalho, a classe define ainda a propriedade "cPropertyExclusionList", que especifica uma lista de propriedades que não serão serializadas. Isto evita que, propriedades como "Parent", sejam serializadas; o que geraria um poblema pois voltaríamos um nível e entráríamos em um ciclo infinito, e o que é pior, recursivo.

Particularmente, não aconselho a utilização deste recurso para objetos complexos como a Grid. Já tentei fazer isso e os resultados não foram muito satisfatórios.

Para outros tipos de objetos, esta técnica pode ser usada de forma muito interessante. No livro existe um exemplo que usa uma classe de negócio customizada. Neste tipo de cenário, a serialização de objetos pode ser muito interessante, já que podemos transferí-los entre instâncias de aplicações ou mesmo pela rede, transpondo limites de espaço de memória.

Um abraço!
-----
Fabio Vazquez
http://www.fabiovazquez.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform