SoapAttributeAttribute 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 SoapAttributeAttribute 類別的新執行個體。
多載
SoapAttributeAttribute() |
初始化 SoapAttributeAttribute 類別的新執行個體。 |
SoapAttributeAttribute(String) |
使用指定的值做為 XML 屬性的名稱,初始化 SoapAttributeAttribute 類別的新執行個體。 |
SoapAttributeAttribute()
初始化 SoapAttributeAttribute 類別的新執行個體。
public:
SoapAttributeAttribute();
public SoapAttributeAttribute ();
Public Sub New ()
範例
下列範例會建立新的 SoapAttributeAttribute ,用來覆寫欄位的序列化。 建立 SoapAttributeAttribute 並設定其屬性之後,物件會設定為 SoapAttribute 的 SoapAttributes 屬性。 接著,會 SoapAttributes 加入至 SoapAttributeOverrides ,用來建立 XmlSerializer 。
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
public ref class Group
{
public:
// This attribute will be overridden.
[SoapAttributeAttribute(Namespace="http://www.cpandl.com")]
String^ GroupName;
};
public ref class Run
{
public:
void SerializeOverride( String^ filename )
{
// Create an instance of the XmlSerializer class
// that overrides the serialization.
XmlSerializer^ overRideSerializer = CreateOverrideSerializer();
// Writing the file requires a TextWriter.
TextWriter^ writer = gcnew StreamWriter( filename );
// Create an instance of the class that will be serialized.
Group^ myGroup = gcnew Group;
// Set the Object* properties.
myGroup->GroupName = ".NET";
// Serialize the class, and close the TextWriter.
overRideSerializer->Serialize( writer, myGroup );
writer->Close();
}
private:
XmlSerializer^ CreateOverrideSerializer()
{
SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides;
SoapAttributes^ mySoapAttributes = gcnew SoapAttributes;
// Create a new SoapAttributeAttribute to the
// one applied to the Group class. The resulting XML
// stream will use the new namespace and attribute name.
SoapAttributeAttribute^ mySoapAttribute = gcnew SoapAttributeAttribute;
mySoapAttribute->AttributeName = "TeamName";
// Change the Namespace.
mySoapAttribute->Namespace = "http://www.cohowinery.com";
mySoapAttributes->SoapAttribute = mySoapAttribute;
mySoapAttributeOverrides->Add( Group::typeid, "GroupName", mySoapAttributes );
XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid );
XmlSerializer^ ser = gcnew XmlSerializer( myMapping );
return ser;
}
};
int main()
{
Run^ test = gcnew Run;
test->SerializeOverride( "SoapOveride.xml" );
}
//<?xml version=S"1.0" encoding=S"utf-8" ?>
// <Group xmlns:xsi=S"http://www.w3.org/2001/XMLSchema-instance"
//xmlns:xsd=S"http://www.w3.org/2001/XMLSchema" n1:TeamName=S".NET"
//xmlns:n1=S"http://www.cohowinery" />
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Group
{
// This attribute will be overridden.
[SoapAttribute (Namespace = "http://www.cpandl.com")]
public string GroupName;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeOverride("SoapOveride.xml");
}
public void SerializeOverride(string filename)
{
// Create an instance of the XmlSerializer class
// that overrides the serialization.
XmlSerializer overRideSerializer = CreateOverrideSerializer();
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
// Set the object properties.
myGroup.GroupName = ".NET";
// Serialize the class, and close the TextWriter.
overRideSerializer.Serialize(writer, myGroup);
writer.Close();
}
private XmlSerializer CreateOverrideSerializer(){
SoapAttributeOverrides mySoapAttributeOverrides =
new SoapAttributeOverrides();
SoapAttributes mySoapAttributes = new SoapAttributes();
// Create a new SoapAttributeAttribute to override the
// one applied to the Group class. The resulting XML
// stream will use the new namespace and attribute name.
SoapAttributeAttribute mySoapAttribute =
new SoapAttributeAttribute();
mySoapAttribute.AttributeName = "TeamName";
// Change the Namespace.
mySoapAttribute.Namespace = "http://www.cohowinery.com";
mySoapAttributes.SoapAttribute = mySoapAttribute;
mySoapAttributeOverrides.
Add(typeof(Group), "GroupName" ,mySoapAttributes);
XmlTypeMapping myMapping = (new SoapReflectionImporter
(mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group));
XmlSerializer ser = new XmlSerializer(myMapping);
return ser;
}
}
//<?xml version="1.0" encoding="utf-8" ?>
// <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
//xmlns:xsd="http://www.w3.org/2001/XMLSchema" n1:TeamName=".NET"
//xmlns:n1="http://www.cohowinery" />
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Class Group
' This attribute will be overridden.
<SoapAttribute (Namespace: = "http://www.cpandl.com")> _
Public GroupName As String
End Class
public class Run
Public Shared Sub Main()
Dim test As Run = new Run()
test.SerializeOverride("SoapOveride.xml")
End Sub
Public Sub SerializeOverride(filename As String )
' Create an instance of the XmlSerializer class
' that overrides the serialization.
Dim overRideSerializer As XmlSerializer = _
CreateOverrideSerializer()
' Writing the file requires a TextWriter.
Dim writer As TextWriter = new StreamWriter(filename)
' Create an instance of the class that will be serialized.
Dim myGroup As Group = new Group()
' Set the object properties.
myGroup.GroupName = ".NET"
' Serialize the class, and close the TextWriter.
overRideSerializer.Serialize(writer, myGroup)
writer.Close()
End Sub
Private Function CreateOverrideSerializer() As XmlSerializer
Dim mySoapAttributeOverrides As SoapAttributeOverrides = _
New SoapAttributeOverrides()
Dim mySoapAttributes As SoapAttributes = New SoapAttributes()
' Create a new SoapAttributeAttribute to override the
' one applied to the Group class. The resulting XML
' stream will use the new namespace and attribute name.
Dim mySoapAttribute As SoapAttributeAttribute = _
New SoapAttributeAttribute()
mySoapAttribute.AttributeName = "TeamName"
' Change the Namespace.
mySoapAttribute.Namespace = "http://www.cohowinery"
mySoapAttributes.SoapAttribute = mySoapAttribute
mySoapAttributeOverrides. _
Add(GetType(Group), "GroupName" ,mySoapAttributes)
Dim myMapping As XmlTypeMapping = (new SoapReflectionImporter _
(mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group))
Dim ser As XmlSerializer = new XmlSerializer(myMapping)
CreateOverrideSerializer = ser
End Function
End Class
'<?xml version="1.0" encoding="utf-8" ?>
'<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
'xmlns:xsd="http://www.w3.org/2001/XMLSchema" n1:TeamName=".NET"
'xmlns:n1="http://www.cohowinery" />
備註
當您覆寫類別成員的序列化時, SoapAttributeAttribute 請使用這個建構函式來建立 。 SoapAttributeAttribute建立 、設定其屬性,並將 物件設定為 SoapAttribute 物件的 屬性 SoapAttributes 。 如需詳細資訊,請參閱 類別概 SoapAttributeOverrides 觀。
適用於
SoapAttributeAttribute(String)
使用指定的值做為 XML 屬性的名稱,初始化 SoapAttributeAttribute 類別的新執行個體。
public:
SoapAttributeAttribute(System::String ^ attributeName);
public:
SoapAttributeAttribute(System::String ^ attrName);
public SoapAttributeAttribute (string attributeName);
public SoapAttributeAttribute (string attrName);
new System.Xml.Serialization.SoapAttributeAttribute : string -> System.Xml.Serialization.SoapAttributeAttribute
new System.Xml.Serialization.SoapAttributeAttribute : string -> System.Xml.Serialization.SoapAttributeAttribute
Public Sub New (attributeName As String)
Public Sub New (attrName As String)
參數
- attributeNameattrName
- String
XML 屬性的名稱。
範例
下列範例會序列化類別,其中包含套用 的 SoapAttributeAttribute 數個欄位。
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::Xml::Schema;
//using namespace System::Runtime::Remoting::Metadata;
public ref class Vehicle
{
public:
String^ licenseNumber;
};
[SoapInclude(Vehicle::typeid)]
public ref class Group
{
public:
[SoapAttributeAttribute(Namespace="http://www.cpandl.com")]
String^ GroupName;
[SoapAttributeAttribute(DataType="base64Binary")]
array<Byte>^GroupNumber;
[SoapAttributeAttribute(DataType="date",AttributeName="CreationDate")]
DateTime Today;
[SoapElement(DataType="nonNegativeInteger",ElementName="PosInt")]
String^ PostitiveInt;
Vehicle^ GroupVehicle;
};
public ref class Run
{
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 = gcnew 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 = gcnew Group;
// Set the Object* properties.
myGroup->GroupName = ".NET";
array<Byte>^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )};
myGroup->GroupNumber = hexByte;
DateTime myDate = DateTime(2002,5,2);
myGroup->Today = myDate;
myGroup->PostitiveInt = "10000";
myGroup->GroupVehicle = gcnew 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 = gcnew XmlTextReader( filename );
reader->ReadStartElement( "wrapper" );
// Deserialize and cast the Object*.
Group^ myGroup;
myGroup = safe_cast<Group^>(mySerializer->Deserialize( reader ));
reader->ReadEndElement();
reader->Close();
}
private:
XmlSerializer^ ReturnSOAPSerializer()
{
// Create an instance of the XmlSerializer class.
XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid );
return gcnew XmlSerializer( myMapping );
}
};
int main()
{
Run^ test = gcnew Run;
test->SerializeObject( "SoapAtts.xml" );
test->DeserializeObject( "SoapAtts.xml" );
}
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