//----------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System; using System.Activities; using System.Collections.Generic; using System.Collections.ObjectModel; using SA = System.Activities; public sealed class DeleteBookmarkScope : NativeActivity { public DeleteBookmarkScope() { } public InArgument Scope { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument subInstanceArgument = new RuntimeArgument("Scope", typeof(BookmarkScope), ArgumentDirection.In); metadata.Bind(this.Scope, subInstanceArgument); metadata.SetArgumentsCollection(new Collection { subInstanceArgument }); } protected override void Execute(NativeActivityContext context) { BookmarkScope toUnregister = this.Scope.Get(context); if (toUnregister == null) { throw SA.FxTrace.Exception.AsError(new InvalidOperationException(SA.SR.CannotUnregisterNullBookmarkScope)); } if (toUnregister.Equals(context.DefaultBookmarkScope)) { throw SA.FxTrace.Exception.AsError(new InvalidOperationException(SA.SR.CannotUnregisterDefaultBookmarkScope)); } context.UnregisterBookmarkScope(toUnregister); } } }