e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.Activities.Statements
|
|
{
|
|
using System;
|
|
using System.Activities;
|
|
using System.Collections.Generic;
|
|
|
|
public sealed class Persist : NativeActivity
|
|
{
|
|
static BookmarkCallback onPersistCompleteCallback;
|
|
|
|
protected override void CacheMetadata(NativeActivityMetadata metadata)
|
|
{
|
|
}
|
|
|
|
protected override bool CanInduceIdle
|
|
{
|
|
get
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
protected override void Execute(NativeActivityContext context)
|
|
{
|
|
if (context.IsInNoPersistScope)
|
|
{
|
|
throw FxTrace.Exception.AsError(new InvalidOperationException(SR.CannotPersistInsideNoPersist));
|
|
}
|
|
|
|
if (onPersistCompleteCallback == null)
|
|
{
|
|
onPersistCompleteCallback = new BookmarkCallback(OnPersistComplete);
|
|
}
|
|
|
|
context.RequestPersist(onPersistCompleteCallback);
|
|
}
|
|
|
|
static void OnPersistComplete(NativeActivityContext context, Bookmark bookmark, object value)
|
|
{
|
|
// No-op. This is here to keep the activity from completing.
|
|
}
|
|
}
|
|
}
|