SoapTypeAttribute 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SoapTypeAttribute 클래스의 새 인스턴스를 초기화합니다.
오버로드
SoapTypeAttribute() |
SoapTypeAttribute 클래스의 새 인스턴스를 초기화합니다. |
SoapTypeAttribute(String) |
SoapTypeAttribute 클래스의 새 인스턴스를 초기화하고 XML 형식의 이름을 지정합니다. |
SoapTypeAttribute(String, String) |
SoapTypeAttribute 클래스의 새 인스턴스를 초기화하고 형식의 이름과 XML 네임스페이스를 지정합니다. |
SoapTypeAttribute()
SoapTypeAttribute 클래스의 새 인스턴스를 초기화합니다.
public:
SoapTypeAttribute();
public SoapTypeAttribute ();
Public Sub New ()
예제
다음 예제에서는 라는 클래스를 직렬화 Group
합니다. " SoapTypeAttribute SoapGroupType"으로 TypeName 설정된 클래스에 적용됩니다. 또한 재정의 SoapTypeAttribute 되어 "팀"으로 변경 TypeName 됩니다. 두 버전 모두 직렬화되어 SoapType.xml 및 SoapType2.xml 두 개의 파일이 생성됩니다.
#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" );
}
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();
}
}
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
설명
형식의 SoapTypeAttribute serialization을 재정의할 때 만듭니다. 개체를 a SoapAttributes 의 속성에 SoapType 할당하고 에 추가 SoapAttributes SoapAttributeOverrides합니다. SOAP serialization 재정의 SoapAttributeOverrides 에 대한 자세한 내용은 클래스 개요를 참조하세요.
적용 대상
SoapTypeAttribute(String)
SoapTypeAttribute 클래스의 새 인스턴스를 초기화하고 XML 형식의 이름을 지정합니다.
public:
SoapTypeAttribute(System::String ^ typeName);
public SoapTypeAttribute (string? typeName);
public SoapTypeAttribute (string typeName);
new System.Xml.Serialization.SoapTypeAttribute : string -> System.Xml.Serialization.SoapTypeAttribute
Public Sub New (typeName As String)
매개 변수
- typeName
- String
XmlSerializer가 클래스 인스턴스를 직렬화할 때 생성하고 클래스 인스턴스를 역직렬화할 때 인식하는 XML 형식의 이름입니다.
예제
다음 예제에서는 라는 클래스를 직렬화 Group
합니다. " SoapTypeAttribute SoapGroupType"으로 TypeName 설정된 클래스에 적용됩니다. 또한 재정의 SoapTypeAttribute 되어 "팀"으로 변경 TypeName 됩니다. 두 버전 모두 직렬화되어 SoapType.xml 및 SoapType2.xml 두 개의 파일이 생성됩니다.
#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" );
}
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();
}
}
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
설명
형식의 SoapTypeAttribute serialization을 재정의할 때 만듭니다. 개체를 a SoapAttributes 의 속성에 SoapType 할당하고 에 추가 SoapAttributes SoapAttributeOverrides합니다. SOAP serialization 재정의 SoapAttributeOverrides 에 대한 자세한 내용은 클래스 개요를 참조하세요.
적용 대상
SoapTypeAttribute(String, String)
SoapTypeAttribute 클래스의 새 인스턴스를 초기화하고 형식의 이름과 XML 네임스페이스를 지정합니다.
public:
SoapTypeAttribute(System::String ^ typeName, System::String ^ ns);
public SoapTypeAttribute (string? typeName, string? ns);
public SoapTypeAttribute (string typeName, string ns);
new System.Xml.Serialization.SoapTypeAttribute : string * string -> System.Xml.Serialization.SoapTypeAttribute
Public Sub New (typeName As String, ns As String)
매개 변수
- typeName
- String
XmlSerializer가 클래스 인스턴스를 직렬화할 때 생성하고 클래스 인스턴스를 역직렬화할 때 인식하는 XML 형식의 이름입니다.
- ns
- String
형식의 XML 네임스페이스입니다.
예제
다음 예제에서는 라는 클래스를 직렬화 Group
합니다. " SoapTypeAttribute SoapGroupType"으로 TypeName 설정된 클래스에 적용됩니다. 또한 재정의 SoapTypeAttribute 되어 "팀"으로 변경 TypeName 됩니다. 두 버전 모두 직렬화되어 SoapType.xml 및 SoapType2.xml 두 개의 파일이 생성됩니다.
#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" );
}
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();
}
}
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
설명
형식의 SoapTypeAttribute serialization을 재정의할 때 만듭니다. 개체를 a SoapAttributes 의 속성에 SoapType 할당하고 에 추가 SoapAttributes SoapAttributeOverrides합니다. SOAP serialization 재정의 SoapAttributeOverrides 에 대한 자세한 내용은 클래스 개요를 참조하세요.
둘 이상의 형식에 대한 값을 설정하는 Namespace 경우(즉, 각각에 대해 다른 Namespace 값을 가진 둘 이상의 클래스에 특성을 적용하는 경우 ) XML 스키마 정의 도구(Xsd.exe) 는 각 형식에 대해 별도의 스키마 파일(.xsd)을 생성합니다. 각 형식에 대해 다른 네임스페이스를 설정하면 각 형식이 다른 형식과 다르게 렌더링되므로 각 형식을 독립 엔터티로 작성해야 하기 때문입니다.