IDataServiceStreamProvider.GetWriteStream 方法

返回到数据服务用于写入二进制数据从属于指定项的客户端接收的媒体资源的流。

命名空间:  System.Data.Services.Providers
程序集:  Microsoft.Data.Services(在 Microsoft.Data.Services.dll 中)

语法

声明
Function GetWriteStream ( _
    entity As Object, _
    etag As String, _
    checkETagForEquality As Nullable(Of Boolean), _
    operationContext As DataServiceOperationContext _
) As Stream
用法
Dim instance As IDataServiceStreamProvider
Dim entity As Object
Dim etag As String
Dim checkETagForEquality As Nullable(Of Boolean)
Dim operationContext As DataServiceOperationContext
Dim returnValue As Stream

returnValue = instance.GetWriteStream(entity, _
    etag, checkETagForEquality, operationContext)
Stream GetWriteStream(
    Object entity,
    string etag,
    Nullable<bool> checkETagForEquality,
    DataServiceOperationContext operationContext
)
Stream^ GetWriteStream(
    Object^ entity, 
    String^ etag, 
    Nullable<bool> checkETagForEquality, 
    DataServiceOperationContext^ operationContext
)
abstract GetWriteStream : 
        entity:Object * 
        etag:string * 
        checkETagForEquality:Nullable<bool> * 
        operationContext:DataServiceOperationContext -> Stream 
function GetWriteStream(
    entity : Object, 
    etag : String, 
    checkETagForEquality : Nullable<boolean>, 
    operationContext : DataServiceOperationContext
) : Stream

参数

  • entity
    类型:System.Object
    该实体为具有相关媒体资源的媒体链接项。
  • etag
    类型:System.String
    作为发送数据服务的 HTTP 请求一部分的 eTag 值。
  • checkETagForEquality
    类型:System.Nullable<Boolean>
    如果 eTag 被发送到 If-Match 标头,则确定条件请求颁发到数据服务的类型的可为空的 Boolean 值为 true,如果 eTag 被发送到 If-None-Match 标头,则该值为 false,如果请求没有条件并且请求中没有包含 eTag ,则该值为 nullnull 引用(在 Visual Basic 中为 Nothing)。

返回值

类型:System.IO.Stream
有效的 Stream 数据服务用来写入二进制数据从客户端收到的内容。

注释

当与 entity 关联的媒体资源正在处理插入或更新操作时,将通过数据服务运行时调用 GetWriteStream方法。

GetWriteStream 方法应永远不会返回 nullnull 引用(在 Visual Basic 中为 Nothing) 值。

operationContext 将补充作为参数,因为此接口方法的实现器将需要创建写入流的 HTTP 请求标头中的信息。 当你实现此方法时,您必须根据需要执行并发检查。 如果 If-Match 或 If-None-Match 请求标头包含在请求中,则 etag 将不会为 nullnull 引用(在 Visual Basic 中为 Nothing)。 在此情况下,这种方法必须执行适当的并发性检查。 如果通过并发检查,则此方法应返回所请求的流。 如果并发性检查失败,则该方法应通过适当的 HTTP 响应代码提高 DataServiceException

eTag是 If-Match 或 If-None-Match 标头的值。

当你实现此方法时,您必须不设置内容类型或 eTag HTTP 响应标头,因为他们由数据服务运行时设置。 您可以通过使用所提供的 operationContext 设置剩余 HTTP 响应标头。

当实现此方法时,您应该只设置成功响应所需的 operationContext 属性。 关于更改其他 operationContext 属性可能会损坏来自数据服务的响应。

所有字节都成功都写入流时,数据服务运行时关闭流。 如果在写入到流中出现的错误,则数据服务将生成客户端的错误响应。

当您实现 GetWriteStream 方法时,你应提出以下例外,如:

异常类型

Condition

ArgumentNullException

当 entity 或 operationContext 为 nullnull 引用(在 Visual Basic 中为 Nothing)。

ArgumentException

在 entity 不含二进制属性。

DataServiceException

当不能返回有效的流。

请参阅

参考

IDataServiceStreamProvider 接口

System.Data.Services.Providers 命名空间