C# XmlFormatter Sgen

lunedì 12 novembre 2007 - 09.39

pa_squalo Profilo | Newbie

Sto sviluppando un progetto in c# con visualStudio2005 e XP Professional.
Il progetto è composto da due eseguibili che usano la MessageQueue come mezzo di comunicazione
per scambiarsi dati formattati con XmlFormatter. I tipi di dati scambiati sono definiti in una dll.
Voglio creare un assembly di serializzazione XML della dll per migliorare le prestazioni di avvio di un oggetto XmlSerializer quando serializza o deserializza.
Nelle proprietà della dll settando ON su Generate serialization assembly il compilatore scrive:


C:\Programmi\Microsoft Visual Studio 8\SDK\v2.0\bin\sgen.exe /assembly:"C:\MyQueue con DLL\DLL\obj\Debug\DLL.dll" /proxytypes /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /compiler:/delaysign-
DLL -> C:\MyQueue con DLL\DLL\bin\Debug\DLL.dll

ma non crea nessuna DLL.XmlSerializers.dll'. Allora ho settando OFF su Generate serialization assembly e lancio Sgen da linea di comando:

"C:\Programmi\Microsoft Visual Studio 8\SDK\v2.0\bin\sgen.exe" /assembly:"C:\MyQueue con DLL\DLL\bin\Debug\DLL.dll" /force

il compilatore scrive:


DLL -> C:\MyQueue con DLL\DLL\bin\Debug\DLL.dll

"C:\Programmi\Microsoft Visual Studio 8\SDK\v2.0\bin\sgen.exe" /assembly:"C:\MyQueue con DLL\DLL\bin\Debug\DLL.dll" /force

Microsoft (R) Xml Serialization support utility

[Microsoft (R) .NET Framework, Version 2.0.50727.42]

Copyright (C) Microsoft Corporation. All rights reserved.

Serialization Assembly Name: DLL.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

Generated serialization assembly for assembly C:\MyQueue con DLL\DLL\bin\Debug\DLL.dll --> 'C:\MyQueue con DLL\DLL\bin\Debug\DLL.XmlSerializers.dll'.

Quindi crea DLL.XmlSerializers.dll ma in run time ho il seguente output:

'MyQueue.vshost.exe' (Managed): Loaded 'C:\MyQueue con DLL\MyQueue\bin\Debug\DLL.XmlSerializers.dll', No symbols loaded.

'Second.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', No symbols loaded.



Ora I mie dubbi sono:
1- come si settano i parametri del Sgen se eseguito in modo automatico;
2- perché anche se DLL.XmlSerializers.dll esiste non carica i simboli e quindi li crea in run-time rallentando il tutto.

Allego un semplice progetto di esempio.
Grazie
Pasquale

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5