XmlWriter.WriteValue 方法

定义

写入单一的简单类型化值。

重载

WriteValue(Single)

写入一个单精度浮点数。

WriteValue(Object)

写入对象值。

WriteValue(Int64)

写入 Int64 值。

WriteValue(Int32)

写入 Int32 值。

WriteValue(Double)

写入 Double 值。

WriteValue(String)

写入 String 值。

WriteValue(DateTimeOffset)

写入 DateTimeOffset 值。

WriteValue(DateTime)

写入 DateTime 值。

WriteValue(Boolean)

写入 Boolean 值。

WriteValue(Decimal)

写入 Decimal 值。

注解

该方法 WriteValue 接受公共语言运行时 (CLR) 简单类型化值,根据 XML 架构定义语言 (XSD) 数据类型转换规则将其转换为字符串表示形式,并使用该方法将其写出 WriteString 。 这样,便可以在传递数据与对象之间XPathDocumentXmlReaderXmlWriter传递数据时,使用最少的重新分析开销来管道简单类型值。 处理 CLR 简单类型和 XmlWriter 实例时,此功能也很有用。 可以调用 WriteValue 该方法来编写类型化值,而不是使用类中的 XmlConvert 方法将类型化数据转换为字符串值,然后再将其写出。

对于异步操作,请将返回值 WriteValue 转换为字符串并使用 WriteStringAsync 该方法。

下表显示了对应于 CLR 类型的默认 XSD 数据类型。

如果 CLR 对象是列表类型,例如 IEnumerableIListICollection,将作为值类型数组对待。

CLR 类型 默认 XSD 数据类型
System.Boolean xsd:boolean
System.Byte** xsd:integer
System.Byte 数组 xsd:base64Binary
System.Char** xsd:string
System.DateTime xsd:dateTime
System.Decimal xsd:decimal
System.Double xsd:double
System.Int16** xsd:integer
System.Int32 xsd:integer
System.Int64 xsd:integer
System.Single xsd:float
System.String xsd:string
System.IO.TextReader xsd:string
System.IO.BinaryReader xsd:base64Binary

**这些类型不符合 CLS。 它们没有相应的 WriteValue 方法。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。

WriteValue(Single)

写入一个单精度浮点数。

public:
 virtual void WriteValue(float value);
public virtual void WriteValue (float value);
abstract member WriteValue : single -> unit
override this.WriteValue : single -> unit
Public Overridable Sub WriteValue (value As Single)

参数

value
Single

要写入的单精度浮点数。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值将序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Object)

写入对象值。

public:
 virtual void WriteValue(System::Object ^ value);
public virtual void WriteValue (object value);
abstract member WriteValue : obj -> unit
override this.WriteValue : obj -> unit
Public Overridable Sub WriteValue (value As Object)

参数

value
Object

要写入的对象值。

注意:随着 .NET Framework 3.5 的发布,该方法接受将 DateTimeOffset 作为参数。

例外

指定了无效值。

valuenull

编写器已关闭或处于错误状态。

  • 或 -

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法使用公共语言运行时 (CLR) 对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

如果 CLR 对象是列表类型,例如 IEnumerableIList或者 ICollection,它被视为值类型的数组。 该值 XmlWriter 根据 XML 架构 (XSD) 数据类型规则将其转换为其字符串表示形式,并使用该方法将其 WriteString 写入。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Int64)

写入 Int64 值。

public:
 virtual void WriteValue(long value);
public virtual void WriteValue (long value);
abstract member WriteValue : int64 -> unit
override this.WriteValue : int64 -> unit
Public Overridable Sub WriteValue (value As Long)

参数

value
Int64

要写入的 Int64 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Int32)

写入 Int32 值。

public:
 virtual void WriteValue(int value);
public virtual void WriteValue (int value);
abstract member WriteValue : int -> unit
override this.WriteValue : int -> unit
Public Overridable Sub WriteValue (value As Integer)

参数

value
Int32

要写入的 Int32 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Double)

写入 Double 值。

public:
 virtual void WriteValue(double value);
public virtual void WriteValue (double value);
abstract member WriteValue : double -> unit
override this.WriteValue : double -> unit
Public Overridable Sub WriteValue (value As Double)

参数

value
Double

要写入的 Double 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

示例

以下示例使用类型化数据编写书籍节点。

Double price = 9.95;
DateTime date = new DateTime(2004, 5, 20);

using (XmlWriter writer = XmlWriter.Create("data.xml"))
{
    writer.WriteStartElement("book");
    writer.WriteStartAttribute("pub-date");
    writer.WriteValue(date);
    writer.WriteEndAttribute();

    writer.WriteStartElement("price");
    writer.WriteValue(price);
    writer.WriteEndElement();

    writer.WriteEndElement();
    writer.Flush();
}
Dim price As [Double] = 9.95
Dim [date] As New DateTime(2004, 5, 20)
        
Using writer As XmlWriter = XmlWriter.Create("data.xml")
  writer.WriteStartElement("book")
  writer.WriteStartAttribute("pub-date")
  writer.WriteValue([date])
  writer.WriteEndAttribute()
            
  writer.WriteStartElement("price")
  writer.WriteValue(price)
  writer.WriteEndElement()
            
  writer.WriteEndElement()
  writer.Flush()
End Using

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(String)

写入 String 值。

public:
 virtual void WriteValue(System::String ^ value);
public virtual void WriteValue (string value);
public virtual void WriteValue (string? value);
abstract member WriteValue : string -> unit
override this.WriteValue : string -> unit
Public Overridable Sub WriteValue (value As String)

参数

value
String

要写入的 String 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值将序列化为文本。

对于异步操作,请使用 WriteStringAsync 该方法。

适用于

WriteValue(DateTimeOffset)

写入 DateTimeOffset 值。

public:
 virtual void WriteValue(DateTimeOffset value);
public virtual void WriteValue (DateTimeOffset value);
abstract member WriteValue : DateTimeOffset -> unit
override this.WriteValue : DateTimeOffset -> unit
Public Overridable Sub WriteValue (value As DateTimeOffset)

参数

value
DateTimeOffset

要写入的 DateTimeOffset 值。

例外

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(DateTime)

写入 DateTime 值。

public:
 virtual void WriteValue(DateTime value);
public virtual void WriteValue (DateTime value);
abstract member WriteValue : DateTime -> unit
override this.WriteValue : DateTime -> unit
Public Overridable Sub WriteValue (value As DateTime)

参数

value
DateTime

要写入的 DateTime 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

示例

以下示例使用类型化数据编写书籍节点。

Double price = 9.95;
DateTime date = new DateTime(2004, 5, 20);

using (XmlWriter writer = XmlWriter.Create("data.xml"))
{
    writer.WriteStartElement("book");
    writer.WriteStartAttribute("pub-date");
    writer.WriteValue(date);
    writer.WriteEndAttribute();

    writer.WriteStartElement("price");
    writer.WriteValue(price);
    writer.WriteEndElement();

    writer.WriteEndElement();
    writer.Flush();
}
Dim price As [Double] = 9.95
Dim [date] As New DateTime(2004, 5, 20)
        
Using writer As XmlWriter = XmlWriter.Create("data.xml")
  writer.WriteStartElement("book")
  writer.WriteStartAttribute("pub-date")
  writer.WriteValue([date])
  writer.WriteEndAttribute()
            
  writer.WriteStartElement("price")
  writer.WriteValue(price)
  writer.WriteEndElement()
            
  writer.WriteEndElement()
  writer.Flush()
End Using

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Boolean)

写入 Boolean 值。

public:
 virtual void WriteValue(bool value);
public virtual void WriteValue (bool value);
abstract member WriteValue : bool -> unit
override this.WriteValue : bool -> unit
Public Overridable Sub WriteValue (value As Boolean)

参数

value
Boolean

要写入的 Boolean 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于

WriteValue(Decimal)

写入 Decimal 值。

public:
 virtual void WriteValue(System::Decimal value);
public virtual void WriteValue (decimal value);
abstract member WriteValue : decimal -> unit
override this.WriteValue : decimal -> unit
Public Overridable Sub WriteValue (value As Decimal)

参数

value
Decimal

要写入的 Decimal 值。

例外

指定了无效值。

在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

注解

此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。

在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。

如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。

如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。

对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。

适用于