Vra

Ek gebruik 'n XmlSerializer om 'n bepaalde soort in mscorelib.dll deserialize

XmlSerializer ser = new XmlSerializer( typeof( [.Net type in System] ) );
return ([.Net type in System]) ser.Deserialize( new StringReader( xmlValue ) );

Dit gooi 'n gevang FileNotFoundException wanneer die vergadering is gelaai:

  

"Kon nie lêer of vergadering te laai   'Mscorlib.XmlSerializers,   Weergawe = 2.0.0.0, Culture = neutraal,   PublicKeyToken = b77a5c561934e089 'of   een van sy afhanklikes. Die sisteem   kan die lêer nie vind. "

FusionLog:

=== Pre-bind state information ===
LOG: User = ###
LOG: DisplayName = mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
 (Fully-specified)
LOG: Appbase = file:///C:/localdir
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\localdir\bin\Debug\appname.vshost.exe.Config
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.EXE.

Sover ek weet is daar geen mscorlib.XmlSerializers.DLL, ek dink die naam DLL het bee motor wat deur Net op soek na die serializer.

Jy het die opsie van die skep van 'n myApplication.XmlSerializers.DLL by die opstel van om serializations optimaliseer, so ek neem aan dit is deel van die beheer van die raamwerk vir dit.

Die probleem is dat hierdie blyk te wees, wat veroorsaak dat 'n vertraging in die laai van die aansoek - dit lyk op te hang vir 'n paar sekondes op hierdie punt

.

Enige idees hoe om dit te vermy of te versnel dit?

Was dit nuttig?

Oplossing

Ek is nou aan die raai. maar:

  1. Die stelsel kan genereer 'n serializer vir die hele mscorlib, wat baie stadig kan wees.
  2. Jy kan waarskynlik dit te voorkom deur die wikkel die tipe stelsel in jou eie tipe en serialising dat in plaas -. Dan moet jy wil 'n serializer kry vir jou eie vergadering
  3. Jy kan in staat wees om die serializer bou vir mscorlib met sgen.exe, wat die ou manier van bou serializer dlls voor dit het opgeneem in VS was.

Ander wenke

Die vertraging is omdat, nadat in staat is om die persoonlike serializer dll, die stelsel is die bou van die ekwivalent kode (wat baie tyd in beslag neem) op die vlieg.

te vind

Die pad na die vertraging te vermy is om die stelsel te bou die DLL, en maak seker dit is beskikbaar vir die EXE - het jy dit probeer

Goed, so ek het in hierdie probleem en 'n oplossing daarvoor spesifiek vir my area gevind het.

Dit het gebeur omdat ek besig was om 'n lys in 'n XML-dokument (lêer) afleveringen sonder 'n XML wortel kenmerk. Sodra ek die volgende lêers bygevoeg, die fout gaan weg.

XmlRootAttribute rootAttribute = new XmlRootAttribute();
rootAttribute.ElementName = "SomeRootName";
rootAttribute.IsNullable = true;

Weet nie of dit jou probleem sal oplos, maar dit vaste myn.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top