XmlSerializer.Deserialize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Desserializa um documento XML.
Sobrecargas
Deserialize(Stream) |
Desserializa o documento XML contido pelo Stream especificado. |
Deserialize(TextReader) |
Desserializa o documento XML contido pelo TextReader especificado. |
Deserialize(XmlSerializationReader) |
Desserializa o documento XML contido pelo XmlSerializationReader especificado. |
Deserialize(XmlReader) |
Desserializa o documento XML contido pelo XmlReader especificado. |
Deserialize(XmlReader, String) |
Desserializa o documento XML contido pelo XmlReader e estilo de codificação especificados. |
Deserialize(XmlReader, XmlDeserializationEvents) |
Desserializa um documento XML contido pelo XmlReader especificado e permite a substituição de eventos que ocorrem durante a desserialização. |
Deserialize(XmlReader, String, XmlDeserializationEvents) |
Desserializa o objeto usando os dados contidos pelo XmlReader especificado. |
Deserialize(Stream)
Desserializa o documento XML contido pelo Stream especificado.
public:
System::Object ^ Deserialize(System::IO::Stream ^ stream);
public object Deserialize (System.IO.Stream stream);
public object? Deserialize (System.IO.Stream stream);
member this.Deserialize : System.IO.Stream -> obj
Public Function Deserialize (stream As Stream) As Object
Parâmetros
Retornos
O Object que está sendo desserializado.
Exemplos
O exemplo a seguir desserializa um objeto usando um Stream objeto.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
// This is the class that will be deserialized.
public ref class OrderedItem
{
public:
[XmlElement(Namespace="http://www.cpandl.com")]
String^ ItemName;
[XmlElement(Namespace="http://www.cpandl.com")]
String^ Description;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal UnitPrice;
[XmlElement(Namespace="http://www.cpandl.com")]
int Quantity;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void DeserializeObject(String^ filename)
{
Console::WriteLine("Reading with Stream");
// Create an instance of the XmlSerializer.
XmlSerializer^ serializer = gcnew XmlSerializer(OrderedItem::typeid);
// Declare an object variable of the type to be deserialized.
OrderedItem^ i;
// Reading the XML document requires a FileStream.
Stream^ reader = gcnew FileStream(filename, FileMode::Open);
try
{
// Call the Deserialize method to restore the object's state.
i = dynamic_cast<OrderedItem^>(serializer->Deserialize(reader));
}
finally
{
delete reader;
}
// Write out the properties of the object.
Console::Write("{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal);
}
int main()
{
// Read a purchase order.
DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
// This is the class that will be deserialized.
public class OrderedItem
{
[XmlElement(Namespace = "http://www.cpandl.com")]
public string ItemName;
[XmlElement(Namespace = "http://www.cpandl.com")]
public string Description;
[XmlElement(Namespace="http://www.cohowinery.com")]
public decimal UnitPrice;
[XmlElement(Namespace = "http://www.cpandl.com")]
public int Quantity;
[XmlElement(Namespace="http://www.cohowinery.com")]
public decimal LineTotal;
// A custom method used to calculate price per item.
public void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
}
public class Test
{
public static void Main()
{
Test t = new Test();
// Read a purchase order.
t.DeserializeObject("simple.xml");
}
private void DeserializeObject(string filename)
{
Console.WriteLine("Reading with Stream");
// Create an instance of the XmlSerializer.
XmlSerializer serializer =
new XmlSerializer(typeof(OrderedItem));
// Declare an object variable of the type to be deserialized.
OrderedItem i;
using (Stream reader = new FileStream(filename, FileMode.Open))
{
// Call the Deserialize method to restore the object's state.
i = (OrderedItem)serializer.Deserialize(reader);
}
// Write out the properties of the object.
Console.Write(
i.ItemName + "\t" +
i.Description + "\t" +
i.UnitPrice + "\t" +
i.Quantity + "\t" +
i.LineTotal);
}
}
Imports System.IO
Imports System.Xml.Serialization
' This is the class that will be deserialized.
Public Class OrderedItem
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public ItemName As String
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public Description As String
<XmlElement(Namespace := "http://www.cohowinery.com")> _
Public UnitPrice As Decimal
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public Quantity As Integer
<XmlElement(Namespace := "http://www.cohowinery.com")> _
Public LineTotal As Decimal
'A custom method used to calculate price per item.
Public Sub Calculate()
LineTotal = UnitPrice * Quantity
End Sub
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
' Read a purchase order.
t.DeserializeObject("simple.xml")
End Sub
Private Sub DeserializeObject(ByVal filename As String)
Console.WriteLine("Reading with Stream")
' Create an instance of the XmlSerializer.
Dim serializer As New XmlSerializer(GetType(OrderedItem))
' Declare an object variable of the type to be deserialized.
Dim i As OrderedItem
Using reader As New Filestream(filename, FileMode.Open)
' Call the Deserialize method to restore the object's state.
i = CType(serializer.Deserialize(reader), OrderedItem)
End Using
' Write out the properties of the object.
Console.Write(i.ItemName & ControlChars.Tab & _
i.Description & ControlChars.Tab & _
i.UnitPrice & ControlChars.Tab & _
i.Quantity & ControlChars.Tab & _
i.LineTotal)
End Sub
End Class
<?xml version="1.0"?>
<OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
<inventory:ItemName>Widget</inventory:ItemName>
<inventory:Description>Regular Widget</inventory:Description>
<money:UnitPrice>2.3</money:UnitPrice>
<inventory:Quantity>10</inventory:Quantity>
<money:LineTotal>23</money:LineTotal>
</OrderedItem>
Comentários
A desserialização é o processo de ler um documento XML e construir um objeto fortemente tipado para o XSD (Esquema XML) do documento.
Antes de desserializar, é necessário construir um XmlSerializer objeto que está sendo desserializado.
Use o stream
parâmetro para especificar um objeto que deriva da Stream classe, que foi projetada para gravar em fluxos. As classes derivadas da Stream classe incluem:
Observação
Não XmlSerializer é possível desserializar o seguinte: matrizes ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Deserialize(TextReader)
Desserializa o documento XML contido pelo TextReader especificado.
public:
System::Object ^ Deserialize(System::IO::TextReader ^ textReader);
public object Deserialize (System.IO.TextReader textReader);
public object? Deserialize (System.IO.TextReader textReader);
member this.Deserialize : System.IO.TextReader -> obj
Public Function Deserialize (textReader As TextReader) As Object
Parâmetros
- textReader
- TextReader
O TextReader que contém o documento XML a ser desserializado.
Retornos
O Object que está sendo desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir desserializa um objeto usando um TextReader objeto.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml::Serialization;
// This is the class that will be deserialized.
public ref class OrderedItem
{
public:
String^ ItemName;
String^ Description;
Decimal UnitPrice;
int Quantity;
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void DeserializeObject( String^ filename )
{
Console::WriteLine( "Reading with TextReader" );
// Create an instance of the XmlSerializer specifying type.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
/* Create a TextReader to read the file. Specify an
Encoding to use. */
TextReader^ reader = gcnew StreamReader( filename,Encoding::Unicode );
// Declare an object variable of the type to be deserialized.
OrderedItem^ i;
// Use the Deserialize method to restore the object's state.
i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));
// Write out the properties of the object.
Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}
int main()
{
// Read a purchase order.
DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;
// This is the class that will be deserialized.
public class OrderedItem
{
[XmlElement(Namespace = "http://www.cpandl.com")]
public string ItemName;
[XmlElement(Namespace = "http://www.cpandl.com")]
public string Description;
[XmlElement(Namespace = "http://www.cohowinery.com")]
public decimal UnitPrice;
[XmlElement(Namespace = "http://www.cpandl.com")]
public int Quantity;
[XmlElement(Namespace = "http://www.cohowinery.com")]
public decimal LineTotal;
// A custom method used to calculate price per item.
public void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
}
public class Test
{
public static void Main()
{
Test t = new Test();
// Read a purchase order.
t.DeserializeObject("simple.xml");
}
private void DeserializeObject(string filename)
{
Console.WriteLine("Reading with TextReader");
// Create an instance of the XmlSerializer specifying type.
XmlSerializer serializer =
new XmlSerializer(typeof(OrderedItem));
// Create a TextReader to read the file.
FileStream fs = new FileStream(filename, FileMode.OpenOrCreate);
TextReader reader = new StreamReader(fs);
// Declare an object variable of the type to be deserialized.
OrderedItem i;
// Use the Deserialize method to restore the object's state.
i = (OrderedItem) serializer.Deserialize(reader);
// Write out the properties of the object.
Console.Write(
i.ItemName + "\t" +
i.Description + "\t" +
i.UnitPrice + "\t" +
i.Quantity + "\t" +
i.LineTotal);
}
}
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization
' This is the class that will be deserialized.
Public Class OrderedItem
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public ItemName As String
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public Description As String
<XmlElement(Namespace := "http://www.cohowinery.com")> _
Public UnitPrice As Decimal
<XmlElement(Namespace := "http://www.cpandl.com")> _
Public Quantity As Integer
<XmlElement(Namespace := "http://www.cohowinery.com")> _
Public LineTotal As Decimal
' A custom method used to calculate price per item.
Public Sub Calculate()
LineTotal = UnitPrice * Quantity
End Sub
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
' Read a purchase order.
t.DeserializeObject("simple.xml")
End Sub
Private Sub DeserializeObject(filename As String)
Console.WriteLine("Reading with TextReader")
' Create an instance of the XmlSerializer specifying type.
Dim serializer As New XmlSerializer(GetType(OrderedItem))
' Create a TextReader to read the file.
Dim fs as New FileStream(filename, FileMode.OpenOrCreate)
Dim reader As New StreamReader(fs)
' Declare an object variable of the type to be deserialized.
Dim i As OrderedItem
' Use the Deserialize method to restore the object's state.
i = CType(serializer.Deserialize(reader), OrderedItem)
' Write out the properties of the object.
Console.Write(i.ItemName & ControlChars.Tab & _
i.Description & ControlChars.Tab & _
i.UnitPrice & ControlChars.Tab & _
i.Quantity & ControlChars.Tab & _
i.LineTotal)
End Sub
End Class
Comentários
A desserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XSD (Esquema XML) do documento.
Antes de desserializar, é necessário construir um XmlSerializer objeto que está sendo desserializado.
Classes que herdam de TextReader incluir StringReader e StreamReader. Se você estiver usando um StreamReader para desserializar um objeto, deverá construir com StreamReader um valor apropriado Encoding. A codificação especificada pelo documento XML é ignorada.
Observação
Para usar a codificação especificada pelo documento XML, use a Deserialize sobrecarga que usa uma inserção XmlReader . O XmlReader detecta e usa automaticamente a codificação especificada pelo documento XML.
Observação
Não XmlSerializer é possível desserializar o seguinte: matrizes ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlSerializationReader)
Desserializa o documento XML contido pelo XmlSerializationReader especificado.
protected:
virtual System::Object ^ Deserialize(System::Xml::Serialization::XmlSerializationReader ^ reader);
protected virtual object Deserialize (System.Xml.Serialization.XmlSerializationReader reader);
abstract member Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
override this.Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
Protected Overridable Function Deserialize (reader As XmlSerializationReader) As Object
Parâmetros
- reader
- XmlSerializationReader
O XmlSerializationReader que contém o documento XML a ser desserializado.
Retornos
O objeto desserializado.
Exceções
Qualquer tentativa de acessar o método será feita quando ele não for substituído em uma classe descendente.
Aplica-se a
Deserialize(XmlReader)
Desserializa o documento XML contido pelo XmlReader especificado.
public:
System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader);
public object Deserialize (System.Xml.XmlReader xmlReader);
public object? Deserialize (System.Xml.XmlReader xmlReader);
member this.Deserialize : System.Xml.XmlReader -> obj
Public Function Deserialize (xmlReader As XmlReader) As Object
Parâmetros
Retornos
O Object que está sendo desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível com o uso da propriedade InnerException.
Exemplos
O exemplo a seguir desserializa um objeto usando um XmlReader.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;
// This is the class that will be deserialized.
public ref class OrderedItem
{
public:
String^ ItemName;
String^ Description;
Decimal UnitPrice;
int Quantity;
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void DeserializeObject( String^ filename )
{
Console::WriteLine( "Reading with XmlReader" );
// Create an instance of the XmlSerializer specifying type and namespace.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
// A FileStream is needed to read the XML document.
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
XmlReader^ reader = gcnew XmlTextReader( fs );
// Declare an object variable of the type to be deserialized.
OrderedItem^ i;
// Use the Deserialize method to restore the object's state.
i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));
// Write out the properties of the object.
Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}
int main()
{
// Read a purchase order.
DeserializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
// This is the class that will be deserialized.
public class OrderedItem
{
public string ItemName;
public string Description;
public decimal UnitPrice;
public int Quantity;
public decimal LineTotal;
// A custom method used to calculate price per item.
public void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
}
public class Test
{
public static void Main(string[] args)
{
Test t = new Test();
// Read a purchase order.
t.DeserializeObject("simple.xml");
}
private void DeserializeObject(string filename)
{
Console.WriteLine("Reading with XmlReader");
// Create an instance of the XmlSerializer specifying type and namespace.
XmlSerializer serializer = new
XmlSerializer(typeof(OrderedItem));
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
// Declare an object variable of the type to be deserialized.
OrderedItem i;
// Use the Deserialize method to restore the object's state.
i = (OrderedItem)serializer.Deserialize(reader);
fs.Close();
// Write out the properties of the object.
Console.Write(
i.ItemName + "\t" +
i.Description + "\t" +
i.UnitPrice + "\t" +
i.Quantity + "\t" +
i.LineTotal);
}
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be deserialized.
Public Class OrderedItem
Public ItemName As String
Public Description As String
Public UnitPrice As Decimal
Public Quantity As Integer
Public LineTotal As Decimal
' A custom method used to calculate price per item.
Public Sub Calculate()
LineTotal = UnitPrice * Quantity
End Sub
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
' Read a purchase order.
t.DeserializeObject("simple.xml")
End Sub
Private Sub DeserializeObject(ByVal filename As String)
Console.WriteLine("Reading with XmlReader")
' Create an instance of the XmlSerializer specifying type and namespace.
Dim serializer As New XmlSerializer(GetType(OrderedItem))
' A FileStream is needed to read the XML document.
Dim fs As New FileStream(filename, FileMode.Open)
Dim reader As XmlReader = XmlReader.Create(fs)
' Declare an object variable of the type to be deserialized.
Dim i As OrderedItem
' Use the Deserialize method to restore the object's state.
i = CType(serializer.Deserialize(reader), OrderedItem)
fs.Close()
' Write out the properties of the object.
Console.Write(i.ItemName & ControlChars.Tab & _
i.Description & ControlChars.Tab & _
i.UnitPrice & ControlChars.Tab & _
i.Quantity & ControlChars.Tab & _
i.LineTotal)
End Sub
End Class
<?xml version="1.0"?>
<OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
<inventory:ItemName>Widget</inventory:ItemName>
<inventory:Description>Regular Widget</inventory:Description>
<money:UnitPrice>2.3</money:UnitPrice>
<inventory:Quantity>10</inventory:Quantity>
<money:LineTotal>23</money:LineTotal>
</OrderedItem>
Comentários
A desserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XSD (Esquema XML) do documento.
Antes de desserializar, é necessário construir um XmlSerializer objeto que está sendo desserializado.
O XmlReader detecta e usa automaticamente a codificação especificada pelo documento XML.
Observação
Não XmlSerializer é possível desserializar o seguinte: matrizes ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlReader, String)
Desserializa o documento XML contido pelo XmlReader e estilo de codificação especificados.
public:
System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle);
public object? Deserialize (System.Xml.XmlReader xmlReader, string? encodingStyle);
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle);
member this.Deserialize : System.Xml.XmlReader * string -> obj
Public Function Deserialize (xmlReader As XmlReader, encodingStyle As String) As Object
Parâmetros
- encodingStyle
- String
O estilo de codificação do XML serializado.
Retornos
O objeto desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível com o uso da propriedade InnerException.
Comentários
A desserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XSD (Esquema XML) do documento.
Antes de desserializar, é necessário construir um XmlSerializer objeto que está sendo desserializado.
Defina o encodingStyle
parâmetro como "http://schemas.xmlsoap.org/soap/encoding/" para codificação SOAP versão 1.1; caso contrário, defina-o como "http://www.w3.org/2001/12/soap-encoding" para codificação SOAP versão 1.2.
Nota Não XmlSerializer é possível desserializar o seguinte: matrizes ArrayList e matrizes de List<T>.
Confira também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de Serialização XML
- Ferramenta de Definição de Esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlReader, XmlDeserializationEvents)
Desserializa um documento XML contido pelo XmlReader especificado e permite a substituição de eventos que ocorrem durante a desserialização.
public:
System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::Xml::Serialization::XmlDeserializationEvents events);
public object? Deserialize (System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);
public object Deserialize (System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * System.Xml.Serialization.XmlDeserializationEvents -> obj
Public Function Deserialize (xmlReader As XmlReader, events As XmlDeserializationEvents) As Object
Parâmetros
- events
- XmlDeserializationEvents
Uma instância da classe XmlDeserializationEvents.
Retornos
O Object que está sendo desserializado.
Comentários
O objeto que está sendo desserializado.
Aplica-se a
Deserialize(XmlReader, String, XmlDeserializationEvents)
Desserializa o objeto usando os dados contidos pelo XmlReader especificado.
public:
System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle, System::Xml::Serialization::XmlDeserializationEvents events);
public object? Deserialize (System.Xml.XmlReader xmlReader, string? encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * string * System.Xml.Serialization.XmlDeserializationEvents -> obj
Public Function Deserialize (xmlReader As XmlReader, encodingStyle As String, events As XmlDeserializationEvents) As Object
Parâmetros
- encodingStyle
- String
A codificação usada.
- events
- XmlDeserializationEvents
Uma instância da classe XmlDeserializationEvents.
Retornos
O objeto que está sendo desserializado.
Comentários
Esse método é necessário apenas para desserialização de cabeçalhos desconhecidos para cenários de Serviço Web. Esse método permite evitar a sincronização de eventos em métodos de Serviço Web.