deserializer = New XmlSerializer(GetType(myrootclass))
Unable to generate a temporary class (result=1). error CS0030: Cannot
convert type 'string[]' to 'string' error CS0029: Cannot implicitly
convert type 'string' to 'string[]'
There's about 50 classes in this class file. I've gotten part of the
way down the tree so I can try to identify exactly what is throwing
this (and what it really means), but is there a better way, and more
importantly, how bad is XSD.exe in creating a class file that doesn't
serialize?
Is it possible to step through the creation of the serializer object?
"Larry Bud" wrote:
> I've got 2 XSD files which I've converted to classes with the xsd.exe
> tool. I've created the first XMLSerializer object just fine, but the
> 2nd throws an exception when creating from the root class:
>
> deserializer = New XmlSerializer(GetType(myrootclass))
>
> Unable to generate a temporary class (result=1). error CS0030: Cannot
> convert type 'string[]' to 'string' error CS0029: Cannot implicitly
> convert type 'string' to 'string[]'
>
I had this error this morning. I had XML which looked like this:
<ConstraintList>
<Constraint>
<Test .... >
<Test .... >
</Constraint>
<Constraint>
: : : :
etc.
When XSD was creating classes, it was creating a class for Constraint, but
not using it in ConstraintList. Where you might expect "private Consraint
constraintField", instead it was creating "private Test[][] constraintField".
I kinda see where it was coming from, but it wasn't serializing.
For reasons I haven't bothered to try to understand at the moment, changing
the .cs file manually to that it was simply "private Test[] constraintField"
(and changing the accompaning property as well) meant that it serialized
fine. It certainly looked alright after a superficial examination of my
classes in the debugger.
Anyhow, I didn't want to be having to manually edit the .cs everytime I
regenerated it so I added a dummy attribute to Constraint. As I suspected,
was enough to make XSD behave and create the classes as I'd expect
(ConstraintList now has "private Constraint[] constraintField).
Hope this is some help to someone.
K
Thanks. My problem turned out to be a poorly designed schema, which
we fixed.
I honestly think few people are doing serialization, as I've had
almost no help when a question has arisen.