SoapAttributeAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica que deve XmlSerializer serializar o membro da classe como um atributo SOAP codificado.
public ref class SoapAttributeAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)]
public class SoapAttributeAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)>]
type SoapAttributeAttribute = class
inherit Attribute
Public Class SoapAttributeAttribute
Inherits Attribute
- Herança
- Atributos
Exemplos
O exemplo seguinte serializa uma classe que contém vários campos aos quais a SoapAttributeAttribute é aplicado.
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.Schema;
[SoapInclude(typeof(Vehicle))]
public class Group
{
[SoapAttribute (Namespace = "http://www.cpandl.com")]
public string GroupName;
[SoapAttribute(DataType = "base64Binary")]
public Byte [] GroupNumber;
[SoapAttribute(DataType = "date", AttributeName = "CreationDate")]
public DateTime Today;
[SoapElement(DataType = "nonNegativeInteger", ElementName = "PosInt")]
public string PostitiveInt;
public Vehicle GroupVehicle;
}
public class Vehicle
{
public string licenseNumber;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("SoapAtts.xml");
test.DeserializeObject("SoapAtts.xml");
}
public void SerializeObject(string filename)
{
// Create an instance of the XmlSerializer class that
// can generate encoded SOAP messages.
XmlSerializer mySerializer = ReturnSOAPSerializer();
Group myGroup=MakeGroup();
// Writing the file requires a TextWriter.
XmlTextWriter writer =
new XmlTextWriter(filename, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("wrapper");
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.WriteEndElement();
writer.Close();
}
private Group MakeGroup(){
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
// Set the object properties.
myGroup.GroupName = ".NET";
Byte [] hexByte = new Byte[2]{Convert.ToByte(100),
Convert.ToByte(50)};
myGroup.GroupNumber = hexByte;
DateTime myDate = new DateTime(2002,5,2);
myGroup.Today = myDate;
myGroup.PostitiveInt= "10000";
myGroup.GroupVehicle = new Vehicle();
myGroup.GroupVehicle.licenseNumber="1234";
return myGroup;
}
public void DeserializeObject(string filename)
{
// Create an instance of the XmlSerializer class that
// can generate encoded SOAP messages.
XmlSerializer mySerializer = ReturnSOAPSerializer();
// Reading the file requires an XmlTextReader.
XmlTextReader reader=
new XmlTextReader(filename);
reader.ReadStartElement("wrapper");
// Deserialize and cast the object.
Group myGroup;
myGroup = (Group) mySerializer.Deserialize(reader);
reader.ReadEndElement();
reader.Close();
}
private XmlSerializer ReturnSOAPSerializer(){
// Create an instance of the XmlSerializer class.
XmlTypeMapping myMapping =
(new SoapReflectionImporter().ImportTypeMapping
(typeof(Group)));
return new XmlSerializer(myMapping);
}
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Xml.Schema
<SoapInclude(GetType(Vehicle))> _
Public Class Group
<SoapAttribute (Namespace:= "http:'www.cpandl.com")> _
Public GroupName As String
<SoapAttribute(DataType:= "base64Binary")> _
Public GroupNumber() As Byte
<SoapAttribute(DataType:= "date", AttributeName:= "CreationDate")> _
Public Today As DateTime
<SoapElement(DataType:= "nonNegativeInteger", _
ElementName:= "PosInt")> _
Public PostitiveInt As String
Public GroupVehicle As Vehicle
End Class
Public Class Vehicle
Public licenseNumber As String
End Class
Public Class Run
Shared Sub Main()
Dim test As Run = New Run()
test.SerializeObject("SoapAtts.xml")
test.DeserializeObject("SoapAtts.xml")
End Sub
Public Sub SerializeObject(filename As String)
' Create an instance of the XmlSerializer Class that
' can generate encoded SOAP messages.
Dim mySerializer As XmlSerializer = ReturnSOAPSerializer()
Dim myGroup As Group = MakeGroup()
' Writing the file requires a TextWriter.
Dim writer As XmlTextWriter = _
New XmlTextWriter(filename, Encoding.UTF8)
writer.Formatting = Formatting.Indented
writer.WriteStartElement("wrapper")
' Serialize the Class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup)
writer.WriteEndElement()
writer.Close()
End Sub
Private Function MakeGroup() As Group
' Create an instance of the Class that will be serialized.
Dim myGroup As Group = New Group()
' Set the object properties.
myGroup.GroupName = ".NET"
Dim hexByte() As Byte= New Byte(1){Convert.ToByte(100), _
Convert.ToByte(50)}
myGroup.GroupNumber = hexByte
Dim myDate As DateTime = New DateTime(2002,5,2)
myGroup.Today = myDate
myGroup.PostitiveInt= "10000"
myGroup.GroupVehicle = New Vehicle()
myGroup.GroupVehicle.licenseNumber="1234"
return myGroup
End Function
Public Sub DeserializeObject(filename As String)
' Create an instance of the XmlSerializer Class that
' can generate encoded SOAP messages.
Dim mySerializer As XmlSerializer = ReturnSOAPSerializer()
' Reading the file requires an XmlTextReader.
Dim reader As XmlTextReader = _
New XmlTextReader(filename)
reader.ReadStartElement("wrapper")
' Deserialize and cast the object.
Dim myGroup As Group
myGroup = _
CType(mySerializer.Deserialize(reader), Group)
reader.ReadEndElement()
reader.Close()
End Sub
private Function ReturnSOAPSerializer() As XmlSerializer
' Create an instance of the XmlSerializer Class.
Dim myMapping As XmlTypeMapping = _
(New SoapReflectionImporter().ImportTypeMapping _
(GetType(Group)))
return New XmlSerializer(myMapping)
End Function
End Class
Observações
A SoapAttributeAttribute classe pertence a uma família de atributos que controla como serializa XmlSerializer , ou desserializa, um objeto codificado como SOAP XML. O XML resultante cumpre a secção 5 do documento do World Wide Web Consortium, Simple Object Access Protocol (SOAP) 1.1. Para uma lista completa de atributos semelhantes, veja Atributos que Controlam a Serialização SOAP Codificada.
Para serializar um objeto como uma mensagem SOAP codificada, deve construir o XmlSerializer usando um XmlTypeMapping criado com o ImportTypeMapping método da SoapReflectionImporter classe.
Aplicar o SoapAttributeAttribute a um campo público para especificar que o XmlSerializer campo serializa como um atributo XML. Pode especificar um nome alternativo para o atributo definindo a AttributeName propriedade. Defina o DataType se o atributo deve receber um tipo de dado específico de linguagem de definição de esquema XML (XSD). Se o atributo pertencer a um namespace XML específico, defina a Namespace propriedade.
Para mais informações sobre o uso de atributos, consulte Atributos
Note
Podes usar a palavra SoapAttribute no teu código em vez do mais longo SoapAttributeAttribute.
Construtores
| Name | Description |
|---|---|
| SoapAttributeAttribute() |
Inicializa uma nova instância da SoapAttributeAttribute classe. |
| SoapAttributeAttribute(String) |
Inicializa uma nova instância da SoapAttributeAttribute classe usando o valor especificado como nome do atributo XML. |
Propriedades
| Name | Description |
|---|---|
| AttributeName |
Obtém ou define o nome do atributo XML gerado pelo XmlSerializer. |
| DataType |
Obtém ou define o tipo de dado XML Schema definition language (XSD) do atributo SOAP gerado pelo XmlSerializer. |
| Namespace |
Obtém ou define o namespace XML do atributo XML. |
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |