本文整理汇总了C#中SyncMemoryStream类的典型用法代码示例。如果您正苦于以下问题:C# SyncMemoryStream类的具体用法?C# SyncMemoryStream怎么用?C# SyncMemoryStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SyncMemoryStream类属于命名空间,在下文中一共展示了SyncMemoryStream类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: DownloadRangeToByteArray
public int DownloadRangeToByteArray(byte[] target, int index, long? blobOffset, long? length, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null)
{
using (SyncMemoryStream stream = new SyncMemoryStream(target, index))
{
this.DownloadRangeToStream(stream, blobOffset, length, accessCondition, options, operationContext);
return (int)stream.Position;
}
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:8,代码来源:CloudBlockBlob.cs
示例2: BeginDownloadRangeToByteArray
public ICancellableAsyncResult BeginDownloadRangeToByteArray(byte[] target, int index, long? blobOffset, long? length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
{
SyncMemoryStream stream = new SyncMemoryStream(target, index);
StorageAsyncResult<int> storageAsyncResult = new StorageAsyncResult<int>(callback, state) { OperationState = stream };
ICancellableAsyncResult result = this.BeginDownloadRangeToStream(
stream,
blobOffset,
length,
accessCondition,
options,
operationContext,
this.DownloadRangeToByteArrayCallback,
storageAsyncResult);
storageAsyncResult.CancelDelegate = result.Cancel;
return storageAsyncResult;
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:18,代码来源:CloudBlockBlob.cs
示例3: DownloadText
/// <summary>
/// Downloads the blob's contents as a string.
/// </summary>
/// <param name="encoding">An object that indicates the text encoding to use.</param>
/// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the access conditions for the blob.</param>
/// <param name="options">An object that specifies any additional options for the request.</param>
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <returns>The contents of the blob, as a string.</returns>
public string DownloadText(Encoding encoding = null, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null)
{
using (SyncMemoryStream stream = new SyncMemoryStream())
{
this.DownloadToStream(stream, accessCondition, options, operationContext);
byte[] streamAsBytes = stream.GetBuffer();
return (encoding ?? Encoding.UTF8).GetString(streamAsBytes, 0, (int)stream.Length);
}
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:17,代码来源:CloudBlockBlob.cs
示例4: BeginDownloadText
/// <summary>
/// Begins an asynchronous operation to download the blob's contents as a string.
/// </summary>
/// <param name="encoding">An object that indicates the text encoding to use.</param>
/// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the access conditions for the blob.</param>
/// <param name="options">An object that specifies any additional options for the request.</param>
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <param name="callback">The callback delegate that will receive notification when the asynchronous operation completes.</param>
/// <param name="state">A user-defined object that will be passed to the callback delegate.</param>
/// <returns>An <see cref="ICancellableAsyncResult"/> that references the asynchronous operation.</returns>
public ICancellableAsyncResult BeginDownloadText(Encoding encoding, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
{
SyncMemoryStream stream = new SyncMemoryStream();
StorageAsyncResult<string> storageAsyncResult = new StorageAsyncResult<string>(callback, state) { OperationState = Tuple.Create(stream, encoding) };
ICancellableAsyncResult result = this.BeginDownloadToStream(
stream,
accessCondition,
options,
operationContext,
this.DownloadTextCallback,
storageAsyncResult);
storageAsyncResult.CancelDelegate = result.Cancel;
return storageAsyncResult;
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:26,代码来源:CloudBlockBlob.cs
示例5: UploadFromByteArray
public void UploadFromByteArray(byte[] buffer, int index, int count, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null)
{
CommonUtility.AssertNotNull("buffer", buffer);
using (SyncMemoryStream stream = new SyncMemoryStream(buffer, index, count))
{
this.UploadFromStream(stream, accessCondition, options, operationContext);
}
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:9,代码来源:CloudBlockBlob.cs
示例6: BeginUploadFromByteArray
public ICancellableAsyncResult BeginUploadFromByteArray(byte[] buffer, int index, int count, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
{
CommonUtility.AssertNotNull("buffer", buffer);
SyncMemoryStream stream = new SyncMemoryStream(buffer, index, count);
return this.BeginUploadFromStream(stream, accessCondition, options, operationContext, callback, state);
}
开发者ID:huoxudong125,项目名称:azure-sdk-for-net,代码行数:7,代码来源:CloudBlockBlob.cs
示例7: BeginUploadFromStreamHelper
internal ICancellableAsyncResult BeginUploadFromStreamHelper(Stream source, long? length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
{
CommonUtility.AssertNotNull("source", source);
if (length.HasValue)
{
CommonUtility.AssertInBounds("length", length.Value, 1);
if (source.CanSeek && length > source.Length - source.Position)
{
throw new ArgumentOutOfRangeException("length", SR.StreamLengthShortError);
}
}
this.attributes.AssertNoSnapshot();
BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.BlockBlob, this.ServiceClient);
ExecutionState<NullType> tempExecutionState = CommonUtility.CreateTemporaryExecutionState(modifiedOptions);
StorageAsyncResult<NullType> storageAsyncResult = new StorageAsyncResult<NullType>(callback, state);
bool lessThanSingleBlobThreshold = CloudBlockBlob.IsLessThanSingleBlobThreshold(source, length, modifiedOptions, false);
modifiedOptions.AssertPolicyIfRequired();
if (modifiedOptions.ParallelOperationThreadCount.Value == 1 && lessThanSingleBlobThreshold)
{
// Because we may or may not want to calculate the MD5, and we may or may not want to encrypt, rather than have four branching code
// paths, here we have an action that we will run, which continually gets added to, depending on which operations we need to do.
// The confusing part is that we have to build it from the bottom up.
string md5 = null;
Stream sourceStream = source;
Action actionToRun = null;
Action uploadAction = () =>
{
if (md5 == null && modifiedOptions.UseTransactionalMD5.Value)
{
throw new ArgumentException(SR.PutBlobNeedsStoreBlobContentMD5, "options");
}
this.UploadFromStreamHandler(
sourceStream,
length,
md5,
accessCondition,
operationContext,
modifiedOptions,
storageAsyncResult);
};
actionToRun = uploadAction;
if (modifiedOptions.StoreBlobContentMD5.Value)
{
Action<Action> calculateMD5 = (continuation) =>
{
long startPosition = sourceStream.Position;
StreamDescriptor streamCopyState = new StreamDescriptor();
sourceStream.WriteToAsync(
Stream.Null,
length,
null /* maxLength */,
true,
tempExecutionState,
streamCopyState,
completedState =>
{
ContinueAsyncOperation(storageAsyncResult, completedState, () =>
{
if (completedState.ExceptionRef != null)
{
storageAsyncResult.OnComplete(completedState.ExceptionRef);
}
else
{
sourceStream.Position = startPosition;
md5 = streamCopyState.Md5;
continuation();
}
});
});
storageAsyncResult.CancelDelegate = tempExecutionState.Cancel;
if (storageAsyncResult.CancelRequested)
{
storageAsyncResult.Cancel();
}
};
Action oldActionToRun = actionToRun;
actionToRun = () => calculateMD5(oldActionToRun);
}
if (modifiedOptions.EncryptionPolicy != null)
{
Action<Action> encryptStream = continuation =>
{
SyncMemoryStream syncMemoryStream = new SyncMemoryStream();
options.AssertPolicyIfRequired();
sourceStream = syncMemoryStream;
//.........这里部分代码省略.........
开发者ID:tamram,项目名称:azure-storage-net,代码行数:101,代码来源:CloudBlockBlob.cs
示例8: UploadFromByteArrayAsync
public virtual Task UploadFromByteArrayAsync(byte[] buffer, int index, int count, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
{
CommonUtility.AssertNotNull("buffer", buffer);
SyncMemoryStream stream = new SyncMemoryStream(buffer, index, count);
return this.UploadFromStreamAsync(stream, accessCondition, options, operationContext, cancellationToken);
}
开发者ID:tamram,项目名称:azure-storage-net,代码行数:7,代码来源:CloudPageBlob.cs
示例9: DownloadRangeToByteArrayAsync
public IAsyncOperation<int> DownloadRangeToByteArrayAsync([WriteOnlyArray] byte[] target, int index, long? fileOffset, long? length, AccessCondition accessCondition, FileRequestOptions options, OperationContext operationContext)
{
return AsyncInfo.Run(async (token) =>
{
using (SyncMemoryStream stream = new SyncMemoryStream(target, index))
{
await this.DownloadRangeToStreamAsync(stream.AsOutputStream(), fileOffset, length, accessCondition, options, operationContext).AsTask(token);
return (int)stream.Position;
}
});
}
开发者ID:DaC24,项目名称:azure-storage-net,代码行数:11,代码来源:CloudFile.cs
示例10: DownloadTextAsync
/// <summary>
/// Downloads the file's contents as a string.
/// </summary>
/// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the access conditions for the file.</param>
/// <param name="options">An object that specifies additional options for the request.</param>
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <param name="cancellationToken">A <see cref="CancellationToken"/> to observe while waiting for a task to complete.</param>
/// <returns>The contents of the file, as a string.</returns>
public Task<string> DownloadTextAsync(AccessCondition accessCondition, FileRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
{
return Task.Run(async () =>
{
using (SyncMemoryStream stream = new SyncMemoryStream())
{
await this.DownloadToStreamAsync(stream, accessCondition, options, operationContext, cancellationToken);
byte[] streamAsBytes = stream.ToArray();
return Encoding.UTF8.GetString(streamAsBytes, 0, streamAsBytes.Length);
}
}, cancellationToken);
}
开发者ID:DaC24,项目名称:azure-storage-net,代码行数:20,代码来源:CloudFile.cs
示例11: UploadFromByteArrayAsync
public IAsyncAction UploadFromByteArrayAsync([ReadOnlyArray] byte[] buffer, int index, int count, AccessCondition accessCondition, FileRequestOptions options, OperationContext operationContext)
{
CommonUtility.AssertNotNull("buffer", buffer);
SyncMemoryStream stream = new SyncMemoryStream(buffer, index, count);
return this.UploadFromStreamAsync(stream.AsInputStream(), accessCondition, options, operationContext);
}
开发者ID:DaC24,项目名称:azure-storage-net,代码行数:7,代码来源:CloudFile.cs
注:本文中的SyncMemoryStream类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论