.net - C# Serialize expression -
i serialize expression. (create iquery clientside -> send server -> execute -> return result client)
but expressions not serializeable. gnupacket serialize.linq (https://github.com/esskar/serialize.linq) still have problem. following exception thrown:
error converting type: der typ 'prog.db.query`1[[prog.database.user, prog.database, version=1.0.0.0, culture=neutral, publickeytoken=null]]' mit dem datenvertragsnamen 'arrayofuser:http://schemas.datacontract.org/2004/07/prog.database' wird nicht erwartet. verwenden sie ggf. einen datacontractresolver, oder fügen sie alle unbekannten typen statisch der liste der bekannten typen hinzu, beispielsweise mithilfe des knowntypeattribute-attributs oder indem sie sie zur liste der bekannten typen hinzufügen, die datacontractserializer übergeben wird.
i added known types
jsonserializer js = new jsonserializer(); js.addknowntypes(assembly.getassembly(typeof(prog.database.user)).gettypes().where(t => !ignorelist.contains(t)).tolist());
adding js.addknowntype(typeof(list<prog.database.user>));
throws exception
error converting type: der typ "system.collections.generic.list`1[lisa.database.user]" kann der liste bekannter typen nicht hinzugefügt werden, da bereits ein anderer typ "lisa.database.user[]" mit demselben datenvertragsnamen "schemas.datacontract.org/2004/07/lisa.database:arrayofuser" vorhanden ist. wenn verschiedene auflistungen eines bestimmten typs vorhanden sind, z. b. list und test[], können nicht beide als bekannte typen hinzugefügt werden. fügen sie ggf. nur einen dieser typen der liste der bekannten typen hinzu.
database serializable (serialization mode: unidirectional) , [datamember] + [datacontract] attributes set well. serialization without expression (just database objects) works fine.
Comments
Post a Comment