Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

69 lines
2.2 KiB
C#

//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Activities.Statements
{
using System;
using System.Activities;
using System.Activities.Runtime;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Runtime;
using System.Windows.Markup;
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [Catch](Of Exception))")]
public abstract class Catch
{
internal Catch()
{
}
public abstract Type ExceptionType
{
get;
}
internal abstract ActivityDelegate GetAction();
internal abstract void ScheduleAction(NativeActivityContext context, Exception exception, CompletionCallback completionCallback, FaultCallback faultCallback);
}
[ContentProperty("Action")]
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [Catch](Of Exception))")]
public sealed class Catch<TException> : Catch
where TException : Exception
{
public Catch()
: base()
{
}
public override Type ExceptionType
{
get
{
return typeof(TException);
}
}
[DefaultValue(null)]
public ActivityAction<TException> Action
{
get;
set;
}
internal override ActivityDelegate GetAction()
{
return this.Action;
}
internal override void ScheduleAction(NativeActivityContext context, Exception exception,
CompletionCallback completionCallback, FaultCallback faultCallback)
{
context.ScheduleAction(this.Action, (TException)exception, completionCallback, faultCallback);
}
}
}