c# - External DLL running in Unity behaves differently then when run in Visual Studio -


i'm writing c# represent nodes, edges, , graphs. part of code library, have classes write/read graphs to/from xml. have test, in visual studio, creates graph, writes xml, , reconstructs graph xml. seems work fine. next, wanted visualize graphs inside unity. compiled graph code .dll .net 3.5 , imported unity. unity recognizes .dll, , throws no errors trying run it. however, when try load same xml file before, xml parser breaks , fails load graph.

does have idea might causing this? in visual studio, tried swapping out .net libraries mono libraries guessing problem, still worked fine. visual studio works great, unity throwing up.

the xml file trying parse looks like...

    <?xml version="1.0" encoding="utf-8"?> <graph>     <time time="0">         <newnodes>             <node type="person" id="£*6o▒$5m¥▒(6»s}_-03+" />             <node type="person" id="jÇ$t!-%=▒¾4iw┼rr¿¿g%" />             <node type="person" id="x2¿+2b#¥v,ß«88!9-d;)" />         </newnodes>         <newedges>             <edge type="knows" id="_«c~f/¾0¾€`j]¾f%†9╟▒" from="£*6o▒$5m¥▒(6»s}_-03+" to="jÇ$t!-%=▒¾4iw┼rr¿¿g%" />             <edge type="knows" id="Ð}Ø4┴~Ð;┴/$£yhߣh,p(" from="jÇ$t!-%=▒¾4iw┼rr¿¿g%" to="£*6o▒$5m¥▒(6»s}_-03+" />             <edge type="knows" id="j;r`߆`vh9*,j†1(5xÇ/" from="£*6o▒$5m¥▒(6»s}_-03+" to="x2¿+2b#¥v,ß«88!9-d;)" />             <edge type="knows" id="¾,┴n!s'@\n{?┴3£d;@‡$" from="x2¿+2b#¥v,ß«88!9-d;)" to="£*6o▒$5m¥▒(6»s}_-03+" />             <edge type="knows" id="*6)Ð7$z¿†*rxcy½3i]x!" from="jÇ$t!-%=▒¾4iw┼rr¿¿g%" to="x2¿+2b#¥v,ß«88!9-d;)" />             <edge type="knows" id="┼¼~cØ0;n5c[x+ov«Ø!7]" from="x2¿+2b#¥v,ß«88!9-d;)" to="jÇ$t!-%=▒¾4iw┼rr¿¿g%" />         </newedges>         <oldnodes />         <oldedges />     </time>     <time time="1">         <newnodes>             <node type="person" id="+e%_wØ¿v_j7n-|]75«w!" />         </newnodes>         <newedges>             <edge type="knows" id="Ç┼/»u.¾9+yq8}╟c=#cv*" from="£*6o▒$5m¥▒(6»s}_-03+" to="+e%_wØ¿v_j7n-|]75«w!" />             <edge type="knows" id="€'t[┼‡/¿~8=Ç`Ç3]$r\*" from="+e%_wØ¿v_j7n-|]75«w!" to="£*6o▒$5m¥▒(6»s}_-03+" />         </newedges>         <oldnodes />         <oldedges />     </time>     <time time="2">         <newnodes>             <node type="person" id="]?:er#349a@.%pxg8v§," />         </newnodes>         <newedges>             <edge type="knows" id="Ç~-ey'@26@▒~Øu^i½1_/" from="jÇ$t!-%=▒¾4iw┼rr¿¿g%" to="+e%_wØ¿v_j7n-|]75«w!" />         </newedges>         <oldnodes />         <oldedges />     </time>     <time time="3">         <newnodes />         <newedges>             <edge type="knows" id="§/«;~'2h,}kÐ8»•ÐvmÐ{" from="+e%_wØ¿v_j7n-|]75«w!" to="]?:er#349a@.%pxg8v§," />         </newedges>         <oldnodes />         <oldedges />     </time> </graph> 

in unity, parser failing read of nodes under newnodes little chuck of code supposed read them in. in visual studio, works great, , 3 newnodes in first time element parsed. in unity, first 1 is.

reader.readtofollowing(xmlconstants.new_nodes); if (reader.readtodescendant(xmlconstants.node)) {           {            node node = xmlhelper.readnode(reader, nodetypes);            g.add(node, time);            slog.writeln("loaded node " + node.sguid);       } while (reader.readtonextsibling(xmlconstants.node)); } 

the code inside function xmlhelper.readnode calls reader.movetoattribute() , reader.value

i pretty frazzled problem. insight appreciated. thanks!

ah ha. trying figure out ever since yesterday, , think found answer.

i added command

reader.movetoelement()

after read attributes. solved it. guess reader.movetoattribute() jumping ahead , getting attribute later on, , throwing rest of traversal off.


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -