NetDataContractSerializer.WriteObjectContent 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 작성기를 사용하여 XML 콘텐츠를 씁니다.
오버로드
| Name | Description |
|---|---|
| WriteObjectContent(XmlDictionaryWriter, Object) |
를 사용하여 XmlDictionaryWriterXML 콘텐츠를 씁니다. |
| WriteObjectContent(XmlWriter, Object) |
를 사용하여 XmlWriterXML 콘텐츠를 씁니다. |
설명
, WriteObjectContent및 메서드는 WriteStartObject쓰기 시작, 쓰기 콘텐츠 및 WriteEndObject 쓰기 끝 패턴을 사용하여 전체 serialization을 작성하는 데 연속적으로 사용됩니다. 세 가지 메서드는 메서드에 의해 WriteObject 호출됩니다.
WriteObjectContent(XmlDictionaryWriter, Object)
를 사용하여 XmlDictionaryWriterXML 콘텐츠를 씁니다.
public:
override void WriteObjectContent(System::Xml::XmlDictionaryWriter ^ writer, System::Object ^ graph);
public override void WriteObjectContent(System.Xml.XmlDictionaryWriter writer, object graph);
override this.WriteObjectContent : System.Xml.XmlDictionaryWriter * obj -> unit
Public Overrides Sub WriteObjectContent (writer As XmlDictionaryWriter, graph As Object)
매개 변수
- writer
- XmlDictionaryWriter
XmlDictionaryWriter XML 콘텐츠를 작성하는 데 사용되는 형식입니다.
- graph
- Object
serialize할 개체입니다. 이 루트 개체의 모든 자식 개체는 자동으로 serialize됩니다.
예외
serialize되는 형식이 데이터 계약 규칙을 준수하지 않습니다. 예를 들어 특성이 DataContractAttribute 형식에 적용되지 않았습니다.
serialize되는 인스턴스에 문제가 있습니다.
serialize할 개체의 최대 수를 초과했습니다. MaxItemsInObjectGraph 속성을 확인합니다.
예제
다음 예제에서는 serialize할 개체, 인스턴스 NetDataContractSerializer및 클래스의 인스턴스를 XmlDictionaryWriter 만듭니다. 이 예제에서는 , WriteObjectContent및 WriteEndObject 메서드를 사용하여 WriteStartObject개체 데이터를 XML 문서에 씁니다.
public sealed class ShowWriteStartObject
{
public static void WriteObjectData(string path)
{
// Create the object to serialize.
Person p = new Person("Lynn", "Tsoflias", 9876);
// Create the writer.
FileStream fs = new FileStream(path, FileMode.Create);
XmlDictionaryWriter writer =
XmlDictionaryWriter.CreateTextWriter(fs);
NetDataContractSerializer ser =
new NetDataContractSerializer();
// Use the writer to start a document.
writer.WriteStartDocument(true);
// Use the serializer to write the start of the
// object data. Use it again to write the object
// data.
ser.WriteStartObject(writer, p);
ser.WriteObjectContent(writer, p);
// Use the serializer to write the end of the
// object data. Then use the writer to write the end
// of the document.
ser.WriteEndObject(writer);
writer.WriteEndDocument();
Console.WriteLine("Done");
// Close and release the writer resources.
writer.Flush();
fs.Flush();
fs.Close();
}
NotInheritable Public Class ShowWriteStartObject
Public Shared Sub WriteObjectData(ByVal path As String)
' Create the object to serialize.
Dim p As New Person("Lynn", "Tsoflias", 9876)
' Create the writer.
Dim fs As New FileStream(path, FileMode.Create)
Dim writer As XmlDictionaryWriter = XmlDictionaryWriter.CreateTextWriter(fs)
Dim ser As New System.Runtime.Serialization.NetDataContractSerializer()
' Use the writer to start a document.
writer.WriteStartDocument(True)
' Use the serializer to write the start of the
' object data. Use it again to write the object
' data.
ser.WriteStartObject(writer, p)
writer.WriteStartAttribute("MyAttribute")
writer.WriteString("My Text")
writer.WriteEndAttribute()
ser.WriteObjectContent(writer, p)
' Use the serializer to write the end of the
' object data. Then use the writer to write the end
' of the document.
ser.WriteEndObject(writer)
writer.WriteEndDocument()
Console.WriteLine("Done")
' Close and release the writer resources.
writer.Flush()
fs.Flush()
fs.Close()
End Sub
적용 대상
WriteObjectContent(XmlWriter, Object)
를 사용하여 XmlWriterXML 콘텐츠를 씁니다.
public:
override void WriteObjectContent(System::Xml::XmlWriter ^ writer, System::Object ^ graph);
public override void WriteObjectContent(System.Xml.XmlWriter writer, object graph);
override this.WriteObjectContent : System.Xml.XmlWriter * obj -> unit
Public Overrides Sub WriteObjectContent (writer As XmlWriter, graph As Object)
매개 변수
- graph
- Object
serialize할 개체입니다. 이 루트 개체의 모든 자식 개체는 자동으로 serialize됩니다.
예외
serialize되는 형식이 데이터 계약 규칙을 준수하지 않습니다. 예를 들어 특성이 DataContractAttribute 형식에 적용되지 않았습니다.
serialize되는 인스턴스에 문제가 있습니다.
serialize할 개체의 최대 수를 초과했습니다. MaxItemsInObjectGraph 속성을 확인합니다.