GameSaveContainer.SubmitUpdatesAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在此容器中提交对游戏保存 blob 的一组更改。 更改可以是写入 Blob 或删除现有 Blob。 如果容器不存在,则会创建一个新容器。 所有写入和更新都是以原子方式应用的。 尝试写入和删除同一 Blob 会导致错误。 每次调用只能写入 16MB 的数据。
public:
virtual IAsyncOperation<GameSaveOperationResult ^> ^ SubmitUpdatesAsync(IMapView<Platform::String ^, IBuffer ^> ^ blobsToWrite, IIterable<Platform::String ^> ^ blobsToDelete, Platform::String ^ displayName) = SubmitUpdatesAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<GameSaveOperationResult> SubmitUpdatesAsync(IMapView<winrt::hstring, IBuffer const&> const& blobsToWrite, IIterable<winrt::hstring> const& blobsToDelete, winrt::hstring const& displayName);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<GameSaveOperationResult> SubmitUpdatesAsync(IReadOnlyDictionary<string,IBuffer> blobsToWrite, IEnumerable<string> blobsToDelete, string displayName);
function submitUpdatesAsync(blobsToWrite, blobsToDelete, displayName)
Public Function SubmitUpdatesAsync (blobsToWrite As IReadOnlyDictionary(Of String, IBuffer), blobsToDelete As IEnumerable(Of String), displayName As String) As IAsyncOperation(Of GameSaveOperationResult)
参数
- blobsToWrite
类型: IMapView<;String,IBuffer>; [JavaScript/C++] | System.Collections.Generic.IReadOnlyDictionary<;String,IBuffer>; [.NET]
Blob 名称和要为每个 Blob 写入的数据的集合。 Blob 名称的最大长度为 63 个字符。
类型: IIterable<;字符串>; [JavaScript/C++] | System.Collections.Generic.IEnumerable<;字符串>; [.NET]
包含要删除的 Blob 的字符串名称的集合。 Blob 名称的最大长度为 63 个字符。
- displayName
-
String
Platform::String
winrt::hstring
类型: 字符串 [JavaScript] | System.String [.NET] | Platform::String [C++]
保存游戏容器的显示名称。 将此设置为将为游戏保存显示的名称。 显示名称的最大长度为 127 个字符。
返回
类型: IAsyncOperation<;GameSaveOperationResult>;
IAsyncOperation<;GameSaveOperationResult>; 表示异步操作的状态。
- 属性
注解
异步操作完成后,检查结果的 Status 属性,以确定操作是否在 GameSaveErrorStatus.Ok 中成功。
每个 TitleID/SCID 限制为每个用户总共 256MB 的存储空间。
当游戏达到用户的存储限制时,对 SubmitUpdatesAsync 的 调用将失败。
如果 Blob 名称或显示名称超过最大长度,游戏保存将无法上传。
SubmitUpdatesAsync 调用不得假定将来的 SubmitUpdatesAsync 调用会成功完成,以便将容器保持为有效状态。 每个 SubmitUpdatesAsync 调用必须将指定容器的内容保持为有效状态,以便应用稍后读取。 例如,如果玩家在游戏中购买含金牌的食物,则应在 对 SubmitUpdatesAsync 的同一调用中更新黄金和食物的新值。 这可以确保同时更新这两个值,或者在发生电源故障或其他阻止更新的事件时,食品和黄金仍将具有其原始值。