At least one implementation described herein relates to evaluating queries
structured according to a first format against one or more objects
structured according to a second, different format without serializing
the object. Typically, evaluating an XML (extensible Markup Language)
query against a CLR (Common Language Runtime) object required serializing
the CLR object and deriving an XML construct from the serialized data.
The query is then be evaluated against the XML construct. In the
described implementations, significant system resources are realized by
creating an infoset model that maps properties of an object to an object
infoset. The query is then evaluated using the infoset to locate object
values and, thus, no serialization is required. Dynamically generated IL
is used and re-used to efficiently perform subsequent evaluation steps on
similar queries.