Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Servicios y aplicaciones cliente que utilizan tipos de datos que se pueden serializar utilizando XmlSerializer generan y compilan el código de serialización para esos tipos de datos en tiempo de ejecución, lo que puede dar lugar a un rendimiento de inicio lento.
Nota:
El código de serialización generado previamente solo se puede usar en aplicaciones cliente y no en servicios.
La herramienta de utilidad de metadatos serviceModel (Svcutil.exe) puede mejorar el rendimiento de inicio de estas aplicaciones mediante la generación del código de serialización necesario a partir de los ensamblados compilados para la aplicación. Svcutil.exe genera código de serialización para todos los tipos de datos usados en contratos de servicio en el ensamblado de la aplicación compilada que se puede serializar mediante XmlSerializer. Los contratos de servicio y operación que usan XmlSerializer se marcan con .XmlSerializerFormatAttribute
Para generar código de serialización XmlSerializer
Compile el servicio o el código de cliente en uno o varios ensamblados.
Abra una terminal del SDK.
En el símbolo de sistema, inicie la herramienta Svcutil.exe con el siguiente formato.
svcutil.exe /t:xmlSerializer <assemblyPath>*El
assemblyPathargumento especifica la ruta de acceso a un ensamblado que contiene tipos de contrato de servicio. Svcutil.exe genera el código de serialización para todos los tipos de datos utilizados en los contratos de servicio del ensamblado de la aplicación compilada que puede ser serializado mediante el XmlSerializer.Svcutil.exe solo puede generar código de serialización de C#. Se genera un archivo de código fuente para cada ensamblado de entrada. No puede usar el modificador /language para cambiar el idioma del código generado.
Para especificar la ruta de acceso a los ensamblados dependientes, use la opción /reference .
Haga que el código de serialización generado esté disponible para la aplicación mediante una de las siguientes opciones:
Compile el código de serialización generado en un ensamblado independiente con el nombre [ensamblado original].XmlSerializers.dll (por ejemplo, MyApp.XmlSerializers.dll). La aplicación debe poder cargar el ensamblado, que debe estar firmado con la misma clave que el ensamblado original. Si vuelve a compilar el ensamblado original, debe volver a generar el ensamblado de serialización.
Compile el código de serialización generado en un ensamblado independiente y use el XmlSerializerAssemblyAttribute en el contrato de servicio que utiliza el XmlSerializerFormatAttribute. Establezca las propiedades AssemblyName o CodeBase para que apunten al ensamblado de serialización compilado.
Compile el código de serialización generado en el ensamblado de su aplicación y agregue el XmlSerializerAssemblyAttribute al contrato de servicio que usa el XmlSerializerFormatAttribute. No establezca las propiedades AssemblyName o CodeBase. Se supone que el ensamblado de serialización predeterminado es el ensamblado actual.
Para generar código de serialización xmlSerializer en Visual Studio
Cree los proyectos de cliente y servicio WCF en Visual Studio. A continuación, agregue una referencia de servicio al proyecto de cliente.
Agregue un XmlSerializerFormatAttribute al contrato de servicio en el archivo reference.cs del proyecto de la aplicación cliente en serviceReference ->reference.svcmap. Tenga en cuenta que debe mostrar todos los archivos en el Explorador de soluciones para ver estos archivos.
Compile la aplicación cliente.
Use la Herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) para crear un archivo de serializador generado previamente .cs mediante el comando :
svcutil.exe /t:xmlSerializer <assemblyPath>*El argumento assemblyPath especifica la ruta de acceso al ensamblado de cliente WCF.
Por ejemplo:
svcutil.exe /t:xmlSerializer wcfclient.exeSe generará el archivo WCFClient.XmlSerializers.dll.cs .
Compile el ensamblado de serialización generado previamente.
En función del ejemplo del paso anterior, el comando compile sería el siguiente:
csc /r:wcfclient.exe /out:WCFClient.XmlSerializers.dll /t:library WCFClient.XmlSerializers.dll.csAsegúrese de que el WCFClient.XmlSerializers.dll generado está en el mismo directorio que la aplicación cliente, que es WCFClient.exe en este caso.
Ejecute la aplicación cliente como de costumbre. Se usará el ensamblado de serialización generado previamente.
Example
El comando siguiente genera tipos de serialización para los tipos XmlSerializer que usan los contratos de servicio de la asamblea.
svcutil /t:xmlserializer myContractLibrary.exe