SoapTypeAttribute クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Interface)> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class SoapTypeAttribute Inherits SoapAttribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface)] [ComVisibleAttribute(true)] public sealed class SoapTypeAttribute : SoapAttribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Interface)] [ComVisibleAttribute(true)] public ref class SoapTypeAttribute sealed : public SoapAttribute

SoapTypeAttribute 属性は、オブジェクト、値型、およびインターフェイス オブジェクトに適用できるカスタム属性です。この属性は、SOAP が SOAP XML ワイヤ形式を生成する方法を制御するオブジェクト型に関する情報を指定するために使用します。

SoapTypeAttribute を使用して、クラスに生成される SOAP をカスタマイズする方法のコード例を次に示します。SOAP は、SerializableAttribute クラスの例に示したコードによって生成できます。
<Serializable(), SoapTypeAttribute(XmlNamespace := "MyXmlNamespace")> Public Class TestSimpleObject Public member1 As Integer <SoapFieldAttribute(XmlElementName := "MyXmlElement")> Public member2 As String Public member3 As String Public member4 As Double ' A field that is not serialized. <NonSerialized()> Public member5 As String Public Sub New() member1 = 11 member2 = "hello" member3 = "hello" member4 = 3.14159265 member5 = "hello world!" End Sub 'New End Class 'TestSimpleObject
[Serializable()] [SoapTypeAttribute(XmlNamespace="MyXmlNamespace")] public class TestSimpleObject { public int member1; [SoapFieldAttribute(XmlElementName="MyXmlElement")] public string member2; public string member3; public double member4; // A field that is not serialized. [NonSerialized()] public string member5; public TestSimpleObject() { member1 = 11; member2 = "hello"; member3 = "hello"; member4 = 3.14159265; member5 = "hello world!"; } }
[Serializable] [SoapTypeAttribute(XmlNamespace="MyXmlNamespace")] public ref class TestSimpleObject { public: int member1; [SoapFieldAttribute(XmlElementName="MyXmlElement")] String^ member2; String^ member3; double member4; // A field that is not serialized. [NonSerialized] String^ member5; TestSimpleObject() { member1 = 11; member2 = "hello"; member3 = "hello"; member4 = 3.14159265; member5 = "hello world!"; } };
/** @attribute Serializable() */ /** @attribute SoapTypeAttribute(XmlNamespace = "MyXmlNamespace") */ public class TestSimpleObject { public int member1; /** @attribute SoapFieldAttribute(XmlElementName = "MyXmlElement") */ public String member2; public String member3; public double member4; // A field that is not serialized. /** @attribute NonSerialized() */ public String member5; public TestSimpleObject() { member1 = 11; member2 = "hello"; member3 = "hello"; member4 = 3.14159265; member5 = "hello world!"; } //TestSimpleObject } //TestSimpleObject

System.Attribute
System.Runtime.Remoting.Metadata.SoapAttribute
System.Runtime.Remoting.Metadata.SoapTypeAttribute


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute クラス
アセンブリ: System.Xml (system.xml.dll 内)

<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Interface)> _ Public Class SoapTypeAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface)] public class SoapTypeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Interface)] public ref class SoapTypeAttribute : public Attribute

SoapTypeAttribute クラスは、XmlSerializer がオブジェクトをエンコード済み SOAP XML としてシリアル化または逆シリアル化する方法を制御する一連の属性のうちの 1 つです。結果として生成される XML は、W3C (World Wide Web Consortium) (www.w3.org) のドキュメント『Simple Object Access Protocol (SOAP) 1.1』のセクション 5 に準拠します。類似する属性の完全な一覧については、「エンコード済み SOAP シリアル化を制御する属性」を参照してください。
オブジェクトをエンコード済み SOAP メッセージとしてシリアル化するには、SoapReflectionImporter クラスの ImportTypeMapping メソッドで作成された XmlTypeMapping を使用して、XmlSerializer を構築します。
SoapTypeAttribute は、クラス宣言にだけ適用できます。
IncludeInSchema プロパティは、結果として生成される XML 要素型が、生成される XML ストリームの XML スキーマ ドキュメント (.xsd) に含まれるかどうかを指定します。スキーマを参照するには、このクラスをコンパイルして DLL ファイルを生成します。作成されるファイルを引数として XML スキーマ定義ツール (Xsd.exe) に渡します。このツールは、XmlSerializer クラスのインスタンスによってクラスがシリアル化されるときに生成される XML ストリームの XML スキーマを作成します。
別の名前空間を設定すると、Xsd.exe は、クラスがシリアル化されるときに生成される XML ストリームについて、別のスキーマ (.xsd) ファイルを作成します。

Group というクラスをシリアル化する例を次に示します。TypeName を "SoapGroupType" に設定した SoapTypeAttribute がクラスに適用されています。この SoapTypeAttribute はオーバーライドされ、TypeName が "Team" に変更されます。両方のバージョンがシリアル化され、結果として SoapType.xml と SoapType2.xml の 2 つのファイルが作成されます。
Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization ' The SoapType is overridden when the ' SerializeOverride method is called. <SoapType("SoapGroupType", "http://www.cohowinery.com")> _ Public class Group Public GroupName As String Public Employees() As Employee End Class <SoapType("EmployeeType")> _ Public Class Employee Public Name As String End Class Public class Run Public Shared Sub Main() Dim test As Run = New Run() test.SerializeOriginal("SoapType.xml") test.SerializeOverride("SoapType2.xml") test.DeserializeObject("SoapType2.xml") End Sub Public Sub SerializeOriginal(filename As String ) ' Create an instance of the XmlSerializer class that ' can be used for serializing as a SOAP message. Dim mapp As XmlTypeMapping = _ (New SoapReflectionImporter()).ImportTypeMapping(GetType(Group)) Dim mySerializer As XmlSerializer = _ New XmlSerializer(mapp) ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees=New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Public Sub SerializeOverride(filename As string ) ' Create an instance of the XmlSerializer class that ' uses a SoapAttributeOverrides object. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees = New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Private Function CreateOverrideSerializer() As XmlSerializer ' Create and return an XmlSerializer instance used to ' override and create SOAP messages. Dim mySoapAttributeOverrides As SoapAttributeOverrides = _ New SoapAttributeOverrides() Dim soapAtts As SoapAttributes = New SoapAttributes() ' Override the SoapTypeAttribute. Dim soapType As SoapTypeAttribute = New SoapTypeAttribute() soapType.TypeName = "Team" soapType.IncludeInSchema = false soapType.Namespace = "http://www.microsoft.com" soapAtts.SoapType = soapType mySoapAttributeOverrides.Add(GetType(Group),soapAtts) ' Create an XmlTypeMapping that is used to create an instance ' of the XmlSerializer. Then return the XmlSerializer object. Dim myMapping As XmlTypeMapping = (New SoapReflectionImporter( _ mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group)) Dim ser As XmlSerializer = New XmlSerializer(myMapping) return ser End Function Public Sub DeserializeObject(filename As String) ' Create an instance of the XmlSerializer class. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Reading the file requires a TextReader. Dim reader As TextReader = New StreamReader(filename) ' Create an XML text reader. Dim xmlReader As XmlTextReader = New XmlTextReader(reader) xmlReader.ReadStartElement() ' Deserialize and cast the object. Dim myGroup As Group = CType(mySerializer.Deserialize(xmlReader), Group) xmlReader.ReadEndElement() Console.WriteLine("The GroupName is " + myGroup.GroupName) Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + _ "files for the generated XML.") ' Close the readers. xmlReader.Close() reader.Close() End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType", "http://www.cohowinery.com")] public class Group { public string GroupName; public Employee[] Employees; } [SoapType("EmployeeType")] public class Employee { public string Name; } public class Run { public static void Main() { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } public void SerializeOriginal(string filename) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()).ImportTypeMapping(typeof(Group)); XmlSerializer mySerializer = new XmlSerializer(mapp); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } public void SerializeOverride(string filename) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.TypeName = "Team"; soapType.IncludeInSchema = false; soapType.Namespace = "http://www.microsoft.com"; soapAtts.SoapType = soapType; mySoapAttributeOverrides.Add(typeof(Group),soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter( mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group)); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } public void DeserializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(filename); // Create an XML text reader. XmlTextReader xmlReader = new XmlTextReader(reader); xmlReader.ReadStartElement(); // Deserialize and cast the object. Group myGroup = (Group) mySerializer.Deserialize(xmlReader); xmlReader.ReadEndElement(); Console.WriteLine("The GroupName is " + myGroup.GroupName); Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + "files for the generated XML."); // Close the readers. xmlReader.Close(); reader.Close(); } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; [SoapType("EmployeeType")] public ref class Employee { public: String^ Name; }; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType","http://www.cohowinery.com")] public ref class Group { public: String^ GroupName; array<Employee^>^Employees; }; public ref class Run { public: void SerializeOriginal( String^ filename ) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void SerializeOverride( String^ filename ) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides Object*. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void DeserializeObject( String^ filename ) { // Create an instance of the XmlSerializer class. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader^ reader = gcnew StreamReader( filename ); // Create an XML text reader. XmlTextReader^ xmlReader = gcnew XmlTextReader( reader ); xmlReader->ReadStartElement(); // Deserialize and cast the object. Group^ myGroup; myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( xmlReader )); xmlReader->ReadEndElement(); Console::WriteLine( "The GroupName is {0}", myGroup->GroupName ); Console::WriteLine( "Look at the SoapType.xml and SoapType2.xml " "files for the generated XML." ); // Close the readers. xmlReader->Close(); reader->Close(); } private: XmlSerializer^ CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // and create SOAP messages. SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; SoapAttributes^ soapAtts = gcnew SoapAttributes; // Override the SoapTypeAttribute. SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; soapType->TypeName = "Team"; soapType->IncludeInSchema = false; soapType->Namespace = "http://www.microsoft.com"; soapAtts->SoapType = soapType; mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer Object*. XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); return ser; } }; int main() { Run^ test = gcnew Run; test->SerializeOriginal( "SoapType.xml" ); test->SerializeOverride( "SoapType2.xml" ); test->DeserializeObject( "SoapType2.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; // The SoapType is overridden when the // SerializeOverride method is called. /** @attribute SoapType("SoapGroupType", "http://www.cohowinery.com") */ public class Group { public String groupName; public Employee employees[]; } //Group /** @attribute SoapType("EmployeeType") */ public class Employee { public String name; } //Employee public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } //main public void SerializeOriginal(String fileName) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()). ImportTypeMapping(Group.class.ToType()); XmlSerializer mySerializer = new XmlSerializer(mapp); // 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOriginal public void SerializeOverride(String fileName) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOverride private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.set_TypeName("Team"); soapType.set_IncludeInSchema(false); soapType.set_Namespace("http://www.microsoft.com"); soapAtts.set_SoapType(soapType); mySoapAttributeOverrides.Add(Group.class.ToType(), soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter(mySoapAttributeOverrides)). ImportTypeMapping(Group.class.ToType()); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } //CreateOverrideSerializer public void DeserializeObject(String fileName) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(fileName); // Deserialize and cast the object. Group myGroup; myGroup = (Group)mySerializer.Deserialize(reader); Console.WriteLine(myGroup.groupName); } //DeserializeObject } //Run

System.Attribute
System.Xml.Serialization.SoapTypeAttribute


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute コンストラクタ ()
アセンブリ: System.Xml (system.xml.dll 内)


型のシリアル化をオーバーライドするときには、SoapTypeAttribute を作成します。このオブジェクトを SoapAttributes の SoapType プロパティに割り当て、その SoapAttributes を SoapAttributeOverrides に追加します。SOAP シリアル化のオーバーライドの詳細については、SoapAttributeOverrides クラスの概要を参照してください。

Group というクラスをシリアル化する例を次に示します。TypeName を "SoapGroupType" に設定した SoapTypeAttribute がクラスに適用されています。この SoapTypeAttribute はオーバーライドされ、TypeName が "Team" に変更されます。両方のバージョンがシリアル化され、結果として SoapType.xml と SoapType2.xml の 2 つのファイルが作成されます。
Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization ' The SoapType is overridden when the ' SerializeOverride method is called. <SoapType("SoapGroupType", "http://www.cohowinery.com")> _ Public class Group Public GroupName As String Public Employees() As Employee End Class <SoapType("EmployeeType")> _ Public Class Employee Public Name As String End Class Public class Run Public Shared Sub Main() Dim test As Run = New Run() test.SerializeOriginal("SoapType.xml") test.SerializeOverride("SoapType2.xml") test.DeserializeObject("SoapType2.xml") End Sub Public Sub SerializeOriginal(filename As String ) ' Create an instance of the XmlSerializer class that ' can be used for serializing as a SOAP message. Dim mapp As XmlTypeMapping = _ (New SoapReflectionImporter()).ImportTypeMapping(GetType(Group)) Dim mySerializer As XmlSerializer = _ New XmlSerializer(mapp) ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees=New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Public Sub SerializeOverride(filename As string ) ' Create an instance of the XmlSerializer class that ' uses a SoapAttributeOverrides object. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees = New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Private Function CreateOverrideSerializer() As XmlSerializer ' Create and return an XmlSerializer instance used to ' override and create SOAP messages. Dim mySoapAttributeOverrides As SoapAttributeOverrides = _ New SoapAttributeOverrides() Dim soapAtts As SoapAttributes = New SoapAttributes() ' Override the SoapTypeAttribute. Dim soapType As SoapTypeAttribute = New SoapTypeAttribute() soapType.TypeName = "Team" soapType.IncludeInSchema = false soapType.Namespace = "http://www.microsoft.com" soapAtts.SoapType = soapType mySoapAttributeOverrides.Add(GetType(Group),soapAtts) ' Create an XmlTypeMapping that is used to create an instance ' of the XmlSerializer. Then return the XmlSerializer object. Dim myMapping As XmlTypeMapping = (New SoapReflectionImporter( _ mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group)) Dim ser As XmlSerializer = New XmlSerializer(myMapping) return ser End Function Public Sub DeserializeObject(filename As String) ' Create an instance of the XmlSerializer class. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Reading the file requires a TextReader. Dim reader As TextReader = New StreamReader(filename) ' Create an XML text reader. Dim xmlReader As XmlTextReader = New XmlTextReader(reader) xmlReader.ReadStartElement() ' Deserialize and cast the object. Dim myGroup As Group = CType(mySerializer.Deserialize(xmlReader), Group) xmlReader.ReadEndElement() Console.WriteLine("The GroupName is " + myGroup.GroupName) Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + _ "files for the generated XML.") ' Close the readers. xmlReader.Close() reader.Close() End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType", "http://www.cohowinery.com")] public class Group { public string GroupName; public Employee[] Employees; } [SoapType("EmployeeType")] public class Employee { public string Name; } public class Run { public static void Main() { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } public void SerializeOriginal(string filename) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()).ImportTypeMapping(typeof(Group)); XmlSerializer mySerializer = new XmlSerializer(mapp); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } public void SerializeOverride(string filename) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.TypeName = "Team"; soapType.IncludeInSchema = false; soapType.Namespace = "http://www.microsoft.com"; soapAtts.SoapType = soapType; mySoapAttributeOverrides.Add(typeof(Group),soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter( mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group)); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } public void DeserializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(filename); // Create an XML text reader. XmlTextReader xmlReader = new XmlTextReader(reader); xmlReader.ReadStartElement(); // Deserialize and cast the object. Group myGroup = (Group) mySerializer.Deserialize(xmlReader); xmlReader.ReadEndElement(); Console.WriteLine("The GroupName is " + myGroup.GroupName); Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + "files for the generated XML."); // Close the readers. xmlReader.Close(); reader.Close(); } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; [SoapType("EmployeeType")] public ref class Employee { public: String^ Name; }; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType","http://www.cohowinery.com")] public ref class Group { public: String^ GroupName; array<Employee^>^Employees; }; public ref class Run { public: void SerializeOriginal( String^ filename ) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void SerializeOverride( String^ filename ) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides Object*. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void DeserializeObject( String^ filename ) { // Create an instance of the XmlSerializer class. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader^ reader = gcnew StreamReader( filename ); // Create an XML text reader. XmlTextReader^ xmlReader = gcnew XmlTextReader( reader ); xmlReader->ReadStartElement(); // Deserialize and cast the object. Group^ myGroup; myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( xmlReader )); xmlReader->ReadEndElement(); Console::WriteLine( "The GroupName is {0}", myGroup->GroupName ); Console::WriteLine( "Look at the SoapType.xml and SoapType2.xml " "files for the generated XML." ); // Close the readers. xmlReader->Close(); reader->Close(); } private: XmlSerializer^ CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // and create SOAP messages. SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; SoapAttributes^ soapAtts = gcnew SoapAttributes; // Override the SoapTypeAttribute. SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; soapType->TypeName = "Team"; soapType->IncludeInSchema = false; soapType->Namespace = "http://www.microsoft.com"; soapAtts->SoapType = soapType; mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer Object*. XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); return ser; } }; int main() { Run^ test = gcnew Run; test->SerializeOriginal( "SoapType.xml" ); test->SerializeOverride( "SoapType2.xml" ); test->DeserializeObject( "SoapType2.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; // The SoapType is overridden when the // SerializeOverride method is called. /** @attribute SoapType("SoapGroupType", "http://www.cohowinery.com") */ public class Group { public String groupName; public Employee employees[]; } //Group /** @attribute SoapType("EmployeeType") */ public class Employee { public String name; } //Employee public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } //main public void SerializeOriginal(String fileName) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()). ImportTypeMapping(Group.class.ToType()); XmlSerializer mySerializer = new XmlSerializer(mapp); // 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOriginal public void SerializeOverride(String fileName) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOverride private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.set_TypeName("Team"); soapType.set_IncludeInSchema(false); soapType.set_Namespace("http://www.microsoft.com"); soapAtts.set_SoapType(soapType); mySoapAttributeOverrides.Add(Group.class.ToType(), soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter(mySoapAttributeOverrides)). ImportTypeMapping(Group.class.ToType()); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } //CreateOverrideSerializer public void DeserializeObject(String fileName) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(fileName); // Deserialize and cast the object. Group myGroup; myGroup = (Group)mySerializer.Deserialize(reader); Console.WriteLine(myGroup.groupName); } //DeserializeObject } //Run

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute コンストラクタ (String)
アセンブリ: System.Xml (system.xml.dll 内)


型のシリアル化をオーバーライドするときには、SoapTypeAttribute を作成します。このオブジェクトを SoapAttributes の SoapType プロパティに割り当て、その SoapAttributes を SoapAttributeOverrides に追加します。SOAP シリアル化のオーバーライドの詳細については、SoapAttributeOverrides クラスの概要を参照してください。

Group というクラスをシリアル化する例を次に示します。TypeName を "SoapGroupType" に設定した SoapTypeAttribute がクラスに適用されています。この SoapTypeAttribute はオーバーライドされ、TypeName が "Team" に変更されます。両方のバージョンがシリアル化され、結果として SoapType.xml と SoapType2.xml の 2 つのファイルが作成されます。
Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization ' The SoapType is overridden when the ' SerializeOverride method is called. <SoapType("SoapGroupType", "http://www.cohowinery.com")> _ Public class Group Public GroupName As String Public Employees() As Employee End Class <SoapType("EmployeeType")> _ Public Class Employee Public Name As String End Class Public class Run Public Shared Sub Main() Dim test As Run = New Run() test.SerializeOriginal("SoapType.xml") test.SerializeOverride("SoapType2.xml") test.DeserializeObject("SoapType2.xml") End Sub Public Sub SerializeOriginal(filename As String ) ' Create an instance of the XmlSerializer class that ' can be used for serializing as a SOAP message. Dim mapp As XmlTypeMapping = _ (New SoapReflectionImporter()).ImportTypeMapping(GetType(Group)) Dim mySerializer As XmlSerializer = _ New XmlSerializer(mapp) ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees=New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Public Sub SerializeOverride(filename As string ) ' Create an instance of the XmlSerializer class that ' uses a SoapAttributeOverrides object. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees = New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Private Function CreateOverrideSerializer() As XmlSerializer ' Create and return an XmlSerializer instance used to ' override and create SOAP messages. Dim mySoapAttributeOverrides As SoapAttributeOverrides = _ New SoapAttributeOverrides() Dim soapAtts As SoapAttributes = New SoapAttributes() ' Override the SoapTypeAttribute. Dim soapType As SoapTypeAttribute = New SoapTypeAttribute() soapType.TypeName = "Team" soapType.IncludeInSchema = false soapType.Namespace = "http://www.microsoft.com" soapAtts.SoapType = soapType mySoapAttributeOverrides.Add(GetType(Group),soapAtts) ' Create an XmlTypeMapping that is used to create an instance ' of the XmlSerializer. Then return the XmlSerializer object. Dim myMapping As XmlTypeMapping = (New SoapReflectionImporter( _ mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group)) Dim ser As XmlSerializer = New XmlSerializer(myMapping) return ser End Function Public Sub DeserializeObject(filename As String) ' Create an instance of the XmlSerializer class. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Reading the file requires a TextReader. Dim reader As TextReader = New StreamReader(filename) ' Create an XML text reader. Dim xmlReader As XmlTextReader = New XmlTextReader(reader) xmlReader.ReadStartElement() ' Deserialize and cast the object. Dim myGroup As Group = CType(mySerializer.Deserialize(xmlReader), Group) xmlReader.ReadEndElement() Console.WriteLine("The GroupName is " + myGroup.GroupName) Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + _ "files for the generated XML.") ' Close the readers. xmlReader.Close() reader.Close() End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType", "http://www.cohowinery.com")] public class Group { public string GroupName; public Employee[] Employees; } [SoapType("EmployeeType")] public class Employee { public string Name; } public class Run { public static void Main() { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } public void SerializeOriginal(string filename) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()).ImportTypeMapping(typeof(Group)); XmlSerializer mySerializer = new XmlSerializer(mapp); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } public void SerializeOverride(string filename) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.TypeName = "Team"; soapType.IncludeInSchema = false; soapType.Namespace = "http://www.microsoft.com"; soapAtts.SoapType = soapType; mySoapAttributeOverrides.Add(typeof(Group),soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter( mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group)); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } public void DeserializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(filename); // Create an XML text reader. XmlTextReader xmlReader = new XmlTextReader(reader); xmlReader.ReadStartElement(); // Deserialize and cast the object. Group myGroup = (Group) mySerializer.Deserialize(xmlReader); xmlReader.ReadEndElement(); Console.WriteLine("The GroupName is " + myGroup.GroupName); Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + "files for the generated XML."); // Close the readers. xmlReader.Close(); reader.Close(); } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; [SoapType("EmployeeType")] public ref class Employee { public: String^ Name; }; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType","http://www.cohowinery.com")] public ref class Group { public: String^ GroupName; array<Employee^>^Employees; }; public ref class Run { public: void SerializeOriginal( String^ filename ) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void SerializeOverride( String^ filename ) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides Object*. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void DeserializeObject( String^ filename ) { // Create an instance of the XmlSerializer class. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader^ reader = gcnew StreamReader( filename ); // Create an XML text reader. XmlTextReader^ xmlReader = gcnew XmlTextReader( reader ); xmlReader->ReadStartElement(); // Deserialize and cast the object. Group^ myGroup; myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( xmlReader )); xmlReader->ReadEndElement(); Console::WriteLine( "The GroupName is {0}", myGroup->GroupName ); Console::WriteLine( "Look at the SoapType.xml and SoapType2.xml " "files for the generated XML." ); // Close the readers. xmlReader->Close(); reader->Close(); } private: XmlSerializer^ CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // and create SOAP messages. SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; SoapAttributes^ soapAtts = gcnew SoapAttributes; // Override the SoapTypeAttribute. SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; soapType->TypeName = "Team"; soapType->IncludeInSchema = false; soapType->Namespace = "http://www.microsoft.com"; soapAtts->SoapType = soapType; mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer Object*. XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); return ser; } }; int main() { Run^ test = gcnew Run; test->SerializeOriginal( "SoapType.xml" ); test->SerializeOverride( "SoapType2.xml" ); test->DeserializeObject( "SoapType2.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; // The SoapType is overridden when the // SerializeOverride method is called. /** @attribute SoapType("SoapGroupType", "http://www.cohowinery.com") */ public class Group { public String groupName; public Employee employees[]; } //Group /** @attribute SoapType("EmployeeType") */ public class Employee { public String name; } //Employee public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } //main public void SerializeOriginal(String fileName) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()). ImportTypeMapping(Group.class.ToType()); XmlSerializer mySerializer = new XmlSerializer(mapp); // 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOriginal public void SerializeOverride(String fileName) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOverride private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.set_TypeName("Team"); soapType.set_IncludeInSchema(false); soapType.set_Namespace("http://www.microsoft.com"); soapAtts.set_SoapType(soapType); mySoapAttributeOverrides.Add(Group.class.ToType(), soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter(mySoapAttributeOverrides)). ImportTypeMapping(Group.class.ToType()); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } //CreateOverrideSerializer public void DeserializeObject(String fileName) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(fileName); // Deserialize and cast the object. Group myGroup; myGroup = (Group)mySerializer.Deserialize(reader); Console.WriteLine(myGroup.groupName); } //DeserializeObject } //Run

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute コンストラクタ (String, String)
アセンブリ: System.Xml (system.xml.dll 内)


型のシリアル化をオーバーライドするときには、SoapTypeAttribute を作成します。このオブジェクトを SoapAttributes の SoapType プロパティに割り当て、その SoapAttributes を SoapAttributeOverrides に追加します。SOAP シリアル化のオーバーライドの詳細については、SoapAttributeOverrides クラスの概要を参照してください。
複数の型に対して Namespace 値を設定 (つまり、この属性を、それぞれの Namespace 値が異なる複数のクラスに適用) した場合、XML スキーマ定義ツール (Xsd.exe) は型ごとに個別のスキーマ ファイル (.xsd) を生成します。これは、型ごとに異なる名前空間を設定することによって各型が他の型と区別され、したがって、それぞれの型を個別のエンティティとして記述する必要が生じるためです。

Group というクラスをシリアル化する例を次に示します。TypeName を "SoapGroupType" に設定した SoapTypeAttribute がクラスに適用されています。この SoapTypeAttribute はオーバーライドされ、TypeName が "Team" に変更されます。両方のバージョンがシリアル化され、結果として SoapType.xml と SoapType2.xml の 2 つのファイルが作成されます。
Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization ' The SoapType is overridden when the ' SerializeOverride method is called. <SoapType("SoapGroupType", "http://www.cohowinery.com")> _ Public class Group Public GroupName As String Public Employees() As Employee End Class <SoapType("EmployeeType")> _ Public Class Employee Public Name As String End Class Public class Run Public Shared Sub Main() Dim test As Run = New Run() test.SerializeOriginal("SoapType.xml") test.SerializeOverride("SoapType2.xml") test.DeserializeObject("SoapType2.xml") End Sub Public Sub SerializeOriginal(filename As String ) ' Create an instance of the XmlSerializer class that ' can be used for serializing as a SOAP message. Dim mapp As XmlTypeMapping = _ (New SoapReflectionImporter()).ImportTypeMapping(GetType(Group)) Dim mySerializer As XmlSerializer = _ New XmlSerializer(mapp) ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees=New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Public Sub SerializeOverride(filename As string ) ' Create an instance of the XmlSerializer class that ' uses a SoapAttributeOverrides object. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Writing the file requires a TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ' Create an XML text writer. Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer) xmlWriter.Formatting = Formatting.Indented xmlWriter.Indentation = 2 ' Create an instance of the class that will be serialized. Dim myGroup As Group = New Group() ' Set the object properties. myGroup.GroupName = ".NET" Dim e1 As Employee = New Employee() e1.Name = "Pat" myGroup.Employees = New Employee(){e1} ' Write the root element. xmlWriter.WriteStartElement("root") ' Serialize the class. mySerializer.Serialize(xmlWriter, myGroup) ' Close the root tag. xmlWriter.WriteEndElement() ' Close the XmlWriter. xmlWriter.Close() ' Close the TextWriter. writer.Close() End Sub Private Function CreateOverrideSerializer() As XmlSerializer ' Create and return an XmlSerializer instance used to ' override and create SOAP messages. Dim mySoapAttributeOverrides As SoapAttributeOverrides = _ New SoapAttributeOverrides() Dim soapAtts As SoapAttributes = New SoapAttributes() ' Override the SoapTypeAttribute. Dim soapType As SoapTypeAttribute = New SoapTypeAttribute() soapType.TypeName = "Team" soapType.IncludeInSchema = false soapType.Namespace = "http://www.microsoft.com" soapAtts.SoapType = soapType mySoapAttributeOverrides.Add(GetType(Group),soapAtts) ' Create an XmlTypeMapping that is used to create an instance ' of the XmlSerializer. Then return the XmlSerializer object. Dim myMapping As XmlTypeMapping = (New SoapReflectionImporter( _ mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group)) Dim ser As XmlSerializer = New XmlSerializer(myMapping) return ser End Function Public Sub DeserializeObject(filename As String) ' Create an instance of the XmlSerializer class. Dim mySerializer As XmlSerializer = CreateOverrideSerializer() ' Reading the file requires a TextReader. Dim reader As TextReader = New StreamReader(filename) ' Create an XML text reader. Dim xmlReader As XmlTextReader = New XmlTextReader(reader) xmlReader.ReadStartElement() ' Deserialize and cast the object. Dim myGroup As Group = CType(mySerializer.Deserialize(xmlReader), Group) xmlReader.ReadEndElement() Console.WriteLine("The GroupName is " + myGroup.GroupName) Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + _ "files for the generated XML.") ' Close the readers. xmlReader.Close() reader.Close() End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType", "http://www.cohowinery.com")] public class Group { public string GroupName; public Employee[] Employees; } [SoapType("EmployeeType")] public class Employee { public string Name; } public class Run { public static void Main() { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } public void SerializeOriginal(string filename) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()).ImportTypeMapping(typeof(Group)); XmlSerializer mySerializer = new XmlSerializer(mapp); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } public void SerializeOverride(string filename) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an XML text writer. XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.Indentation = 2; // Create an instance of the class that will be serialized. Group myGroup = new Group(); // Set the object properties. myGroup.GroupName = ".NET"; Employee e1 = new Employee(); e1.Name = "Pat"; myGroup.Employees=new Employee[]{e1}; // Write the root element. xmlWriter.WriteStartElement("root"); // Serialize the class. mySerializer.Serialize(xmlWriter, myGroup); // Close the root tag. xmlWriter.WriteEndElement(); // Close the XmlWriter. xmlWriter.Close(); // Close the TextWriter. writer.Close(); } private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.TypeName = "Team"; soapType.IncludeInSchema = false; soapType.Namespace = "http://www.microsoft.com"; soapAtts.SoapType = soapType; mySoapAttributeOverrides.Add(typeof(Group),soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter( mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group)); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } public void DeserializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(filename); // Create an XML text reader. XmlTextReader xmlReader = new XmlTextReader(reader); xmlReader.ReadStartElement(); // Deserialize and cast the object. Group myGroup = (Group) mySerializer.Deserialize(xmlReader); xmlReader.ReadEndElement(); Console.WriteLine("The GroupName is " + myGroup.GroupName); Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + "files for the generated XML."); // Close the readers. xmlReader.Close(); reader.Close(); } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; [SoapType("EmployeeType")] public ref class Employee { public: String^ Name; }; // The SoapType is overridden when the // SerializeOverride method is called. [SoapType("SoapGroupType","http://www.cohowinery.com")] public ref class Group { public: String^ GroupName; array<Employee^>^Employees; }; public ref class Run { public: void SerializeOriginal( String^ filename ) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void SerializeOverride( String^ filename ) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides Object*. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create an XML text writer. XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); xmlWriter->Formatting = Formatting::Indented; xmlWriter->Indentation = 2; // Create an instance of the class that will be serialized. Group^ myGroup = gcnew Group; // Set the Object* properties. myGroup->GroupName = ".NET"; Employee^ e1 = gcnew Employee; e1->Name = "Pat"; myGroup->Employees = gcnew array<Employee^>(1); myGroup->Employees[ 0 ] = e1; // Write the root element. xmlWriter->WriteStartElement( "root" ); // Serialize the class. mySerializer->Serialize( xmlWriter, myGroup ); // Close the root tag. xmlWriter->WriteEndElement(); // Close the XmlWriter. xmlWriter->Close(); // Close the TextWriter. writer->Close(); } void DeserializeObject( String^ filename ) { // Create an instance of the XmlSerializer class. XmlSerializer^ mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader^ reader = gcnew StreamReader( filename ); // Create an XML text reader. XmlTextReader^ xmlReader = gcnew XmlTextReader( reader ); xmlReader->ReadStartElement(); // Deserialize and cast the object. Group^ myGroup; myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( xmlReader )); xmlReader->ReadEndElement(); Console::WriteLine( "The GroupName is {0}", myGroup->GroupName ); Console::WriteLine( "Look at the SoapType.xml and SoapType2.xml " "files for the generated XML." ); // Close the readers. xmlReader->Close(); reader->Close(); } private: XmlSerializer^ CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // and create SOAP messages. SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; SoapAttributes^ soapAtts = gcnew SoapAttributes; // Override the SoapTypeAttribute. SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; soapType->TypeName = "Team"; soapType->IncludeInSchema = false; soapType->Namespace = "http://www.microsoft.com"; soapAtts->SoapType = soapType; mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer Object*. XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); return ser; } }; int main() { Run^ test = gcnew Run; test->SerializeOriginal( "SoapType.xml" ); test->SerializeOverride( "SoapType2.xml" ); test->DeserializeObject( "SoapType2.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; // The SoapType is overridden when the // SerializeOverride method is called. /** @attribute SoapType("SoapGroupType", "http://www.cohowinery.com") */ public class Group { public String groupName; public Employee employees[]; } //Group /** @attribute SoapType("EmployeeType") */ public class Employee { public String name; } //Employee public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeOriginal("SoapType.xml"); test.SerializeOverride("SoapType2.xml"); test.DeserializeObject("SoapType2.xml"); } //main public void SerializeOriginal(String fileName) { // Create an instance of the XmlSerializer class that // can be used for serializing as a SOAP message. XmlTypeMapping mapp = (new SoapReflectionImporter()). ImportTypeMapping(Group.class.ToType()); XmlSerializer mySerializer = new XmlSerializer(mapp); // 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOriginal public void SerializeOverride(String fileName) { // Create an instance of the XmlSerializer class that // uses a SoapAttributeOverrides object. XmlSerializer mySerializer = 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"; Employee e1 = new Employee(); e1.name = "Pat"; myGroup.employees = new Employee[] { e1 }; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myGroup); writer.Close(); } //SerializeOverride private XmlSerializer CreateOverrideSerializer() { // Create and return an XmlSerializer instance used to // override and create SOAP messages. SoapAttributeOverrides mySoapAttributeOverrides = new SoapAttributeOverrides(); SoapAttributes soapAtts = new SoapAttributes(); // Override the SoapTypeAttribute. SoapTypeAttribute soapType = new SoapTypeAttribute(); soapType.set_TypeName("Team"); soapType.set_IncludeInSchema(false); soapType.set_Namespace("http://www.microsoft.com"); soapAtts.set_SoapType(soapType); mySoapAttributeOverrides.Add(Group.class.ToType(), soapAtts); // Create an XmlTypeMapping that is used to create an instance // of the XmlSerializer. Then return the XmlSerializer object. XmlTypeMapping myMapping = (new SoapReflectionImporter(mySoapAttributeOverrides)). ImportTypeMapping(Group.class.ToType()); XmlSerializer ser = new XmlSerializer(myMapping); return ser; } //CreateOverrideSerializer public void DeserializeObject(String fileName) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrideSerializer(); // Reading the file requires a TextReader. TextReader reader = new StreamReader(fileName); // Deserialize and cast the object. Group myGroup; myGroup = (Group)mySerializer.Deserialize(reader); Console.WriteLine(myGroup.groupName); } //DeserializeObject } //Run

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SoapTypeAttribute コンストラクタ

名前 | 説明 |
---|---|
SoapTypeAttribute () | SoapTypeAttribute クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
SoapTypeAttribute (String) | SoapTypeAttribute クラスの新しいインスタンスを初期化し、XML 型の名前を指定します。 .NET Compact Framework によってサポートされています。 |
SoapTypeAttribute (String, String) | SoapTypeAttribute クラスの新しいインスタンスを初期化し、型の名前および型の XML 名前空間を指定します。 .NET Compact Framework によってサポートされています。 |

SoapTypeAttribute プロパティ

名前 | 説明 | |
---|---|---|
![]() | Embedded | SOAP のシリアル化時に、型を入れ子にする必要があるかどうかを示す値を取得または設定します。 ( SoapAttribute から継承されます。) |
![]() | SoapOptions | SoapOption 構成値を取得または設定します。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。) |
![]() | UseAttribute | オーバーライドされます。 現在の属性のターゲットを XML フィールドではなく XML 属性としてシリアル化するかどうかを示す値を取得または設定します。 |
![]() | XmlElementName | XML 要素名を取得または設定します。 |
![]() | XmlFieldOrder | このプロパティは使用しないでください。.NET Framework リモート処理のインフラストラクチャでは使用されません。 |
![]() | XmlNamespace | オーバーライドされます。 ターゲット オブジェクト型のシリアル化中に使用する XML 名前空間を取得または設定します。 |
![]() | XmlTypeName | ターゲット オブジェクト型の XML 型名を取得または設定します。 |
![]() | XmlTypeNamespace | 現在のオブジェクト型の XML 型名前空間を取得または設定します。 |

SoapTypeAttribute プロパティ

名前 | 説明 | |
---|---|---|
![]() | IncludeInSchema | SOAP エンコード済みの XML スキーマ ドキュメントに型を含めるかどうかを示す値を取得または設定します。 |
![]() ![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。) |
![]() | TypeName | XML 型の名前を取得または設定します。 |

SoapTypeAttribute メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 ( Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 ( Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

SoapTypeAttribute メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 ( Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 ( Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

SoapTypeAttribute メンバ
対象の型の SOAP 生成および SOAP 処理をカスタマイズします。このクラスは継承できません。
SoapTypeAttribute データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | SoapTypeAttribute |

名前 | 説明 | |
---|---|---|
![]() | Embedded | SOAP のシリアル化時に、型を入れ子にする必要があるかどうかを示す値を取得または設定します。(SoapAttribute から継承されます。) |
![]() | SoapOptions | SoapOption 構成値を取得または設定します。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。(Attribute から継承されます。) |
![]() | UseAttribute | オーバーライドされます。 現在の属性のターゲットを XML フィールドではなく XML 属性としてシリアル化するかどうかを示す値を取得または設定します。 |
![]() | XmlElementName | XML 要素名を取得または設定します。 |
![]() | XmlFieldOrder | このプロパティは使用しないでください。.NET Framework リモート処理のインフラストラクチャでは使用されません。 |
![]() | XmlNamespace | オーバーライドされます。 ターゲット オブジェクト型のシリアル化中に使用する XML 名前空間を取得または設定します。 |
![]() | XmlTypeName | ターゲット オブジェクト型の XML 型名を取得または設定します。 |
![]() | XmlTypeNamespace | 現在のオブジェクト型の XML 型名前空間を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 (Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

SoapTypeAttribute メンバ
SOAP エンコード済みの XML としてクラス インスタンスがシリアル化されるときに、XmlSerializer によって生成されるスキーマを制御します。
SoapTypeAttribute データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | IncludeInSchema | SOAP エンコード済みの XML スキーマ ドキュメントに型を含めるかどうかを示す値を取得または設定します。 |
![]() ![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。(Attribute から継承されます。) |
![]() | TypeName | XML 型の名前を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 (Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- SoapTypeAttributeのページへのリンク