In C#, what's the safe way to do generically convert a primitive to a string for serialization? -


i'd generically serialize class/struct in c#. sake of simplicity, let's assume class/struct can 1 level deep (no structs of structs).

here's i'd write

system.text.stringbuilder builder = new system.text.stringbuilder();  system.reflection.fieldinfo[] fields = obj.gettype().getfields(); foreach (system.reflection.fieldinfo info in fields) {     object fieldvalue = info.getvalue(obj);     if (fieldvalue != null) {         builder.append(fieldvalue.tostring());     }     ... } 

unfortunately far can tell won't work because tostring() culture sensitive. in other words single might output 12.345 or 12,345 depending on culture settings.

is there other non-culture sensitive tostring can call primitive types?

also, there non-culture sensitive generic string object function. i'm using

object value = system.convert.changetype(string, sometype); 

but that's apparently culture sensitive. :(

for changetype, there's overload accepts iformatprovider can call:

system.convert.changetype(string, sometype, cultureinfo.invariantculture); 

Comments

Popular posts from this blog

c++ - OpenMP unpredictable overhead -

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

javascript - Wordpress slider, not displayed 100% width -