XmlWriter.WriteValue 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
写入单一的简单类型化值。
重载
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 对象是列表类型,例如 IEnumerable、IList 或 ICollection,将作为值类型数组对待。
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
为 null
。
编写器已关闭或处于错误状态。
- 或 -
在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”
注解
此方法使用公共语言运行时 (CLR) 对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。
如果 CLR 对象是列表类型,例如 IEnumerable, IList或者 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 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)
参数
例外
指定了无效值。
在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”
注解
此方法采用公共语言运行时对象,并使用 XML 架构定义语言 (XSD) 数据类型转换规则将输入值转换为所需的输出类型。
在调用 WriteValue 方法时,XmlWriter 根据 XML 架构 (XSD) 数据类型定义将值转换为其字符串表示形式并使用 WriteString 方法写出。
如果继续多次调用 WriteValue,值不会通过空格分隔。 必须在调用 WriteWhitespace 之间调用 WriteValue,以插入空白。 将数组类型传递给 XmlWriter.WriteValue(Object) 重载以写出非重复值的数组。
如果在仅输出文本的实例上 XmlWriter 调用此方法,则类型化值序列化为文本。
对于异步操作,请将此方法的返回值转换为字符串并使用 WriteStringAsync 该方法。