I have spent the last few hours putting togeather the following code after reading much that seems out of date or that does\'nt quite seem to work.
If its any help t
I think there is no need for the whole Encoding part. You simply serialise using one encoding, then convert to bytes, and then convert back to Unicode. Why is that? But I might be missing something here.
Another thing that hits me is .ToArray() usage. If you have big hiearchy and serialising lot of objects, this can be pretty performance heavy. Try using StreamReader to read the memory stream without need to copy it into to Array. But this requires some performance testing to back up my reasoning.
I suggest moving the type parameter T
to the enclosing class and making the XmlSerializer
instance static
. A static field in a generic class is per closed type, so SerializationHelper<Apple>
and SerializationHelper<Orange>
will each have separate instances of the field.
Also, I'm not sure that catch { return String.Empty; }
is the best idea either -- masking problems to avoid crashing makes me nervous.