You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
88
external/referencesource/System.Workflow.Activities/Code.cs
vendored
Normal file
88
external/referencesource/System.Workflow.Activities/Code.cs
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
namespace System.Workflow.Activities
|
||||
{
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Reflection;
|
||||
using System.Collections;
|
||||
using System.CodeDom;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Drawing;
|
||||
using System.Workflow.ComponentModel;
|
||||
using System.Workflow.ComponentModel.Design;
|
||||
using System.Workflow.ComponentModel.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using System.Workflow.ComponentModel.Compiler;
|
||||
|
||||
[SRDescription(SR.CodeActivityDescription)]
|
||||
[ToolboxItem(typeof(ActivityToolboxItem))]
|
||||
[Designer(typeof(CodeDesigner), typeof(IDesigner))]
|
||||
[ToolboxBitmap(typeof(CodeActivity), "Resources.code.png")]
|
||||
[DefaultEvent("ExecuteCode")]
|
||||
[SRCategory(SR.Standard)]
|
||||
[ActivityValidator(typeof(CodeActivityValidator))]
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public sealed class CodeActivity : Activity
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
public CodeActivity()
|
||||
{
|
||||
}
|
||||
|
||||
public CodeActivity(string name)
|
||||
: base(name)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public static readonly DependencyProperty ExecuteCodeEvent = DependencyProperty.Register("ExecuteCode", typeof(EventHandler), typeof(CodeActivity));
|
||||
|
||||
protected override sealed ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
|
||||
{
|
||||
base.RaiseEvent(CodeActivity.ExecuteCodeEvent, this, EventArgs.Empty);
|
||||
|
||||
return ActivityExecutionStatus.Closed;
|
||||
}
|
||||
|
||||
[SRCategory(SR.Handlers)]
|
||||
[SRDescription(SR.UserCodeHandlerDescr)]
|
||||
[MergableProperty(false)]
|
||||
public event EventHandler ExecuteCode
|
||||
{
|
||||
add
|
||||
{
|
||||
base.AddHandler(ExecuteCodeEvent, value);
|
||||
}
|
||||
remove
|
||||
{
|
||||
base.RemoveHandler(ExecuteCodeEvent, value);
|
||||
}
|
||||
}
|
||||
|
||||
private class CodeActivityValidator : ActivityValidator
|
||||
{
|
||||
public override ValidationErrorCollection Validate(ValidationManager manager, object obj)
|
||||
{
|
||||
ValidationErrorCollection errors = new ValidationErrorCollection();
|
||||
|
||||
CodeActivity code = obj as CodeActivity;
|
||||
if (code == null)
|
||||
throw new InvalidOperationException();
|
||||
|
||||
// This violates the P || C validation condition, but we are compiling with csc.exe here!
|
||||
if (code.GetInvocationList<EventHandler>(CodeActivity.ExecuteCodeEvent).Length == 0 &&
|
||||
code.GetBinding(CodeActivity.ExecuteCodeEvent) == null)
|
||||
{
|
||||
Hashtable hashtable = code.GetValue(WorkflowMarkupSerializer.EventsProperty) as Hashtable;
|
||||
if (hashtable == null || hashtable["ExecuteCode"] == null)
|
||||
errors.Add(ValidationError.GetNotSetValidationError("ExecuteCode"));
|
||||
}
|
||||
|
||||
errors.AddRange(base.Validate(manager, obj));
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user