Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Code.cs / 1305376 / Code.cs
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))]
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(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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DocumentsTrace.cs
- StyleModeStack.cs
- SvcMapFileSerializer.cs
- ObjectMemberMapping.cs
- QuotedPairReader.cs
- BindingCompleteEventArgs.cs
- QilPatternFactory.cs
- TextElementCollectionHelper.cs
- NonVisualControlAttribute.cs
- XmlNamespaceMapping.cs
- HttpModulesSection.cs
- PanelDesigner.cs
- WindowsRegion.cs
- MenuDesigner.cs
- OutputScope.cs
- JoinCqlBlock.cs
- ExeContext.cs
- HttpInputStream.cs
- AsyncOperationLifetimeManager.cs
- SafeNativeMethodsCLR.cs
- ProxyHwnd.cs
- ConfigPathUtility.cs
- State.cs
- PixelFormat.cs
- XmlSchemaAny.cs
- MiniModule.cs
- BooleanAnimationUsingKeyFrames.cs
- ObjectPropertyMapping.cs
- ScrollBarRenderer.cs
- Section.cs
- TimeSpanSecondsConverter.cs
- MaterialCollection.cs
- ISSmlParser.cs
- ByteStreamGeometryContext.cs
- DataListItem.cs
- PipelineModuleStepContainer.cs
- FrameworkElementAutomationPeer.cs
- AspNetPartialTrustHelpers.cs
- BigInt.cs
- RuleCache.cs
- HwndHostAutomationPeer.cs
- Selection.cs
- JapaneseCalendar.cs
- SequentialUshortCollection.cs
- SoundPlayer.cs
- CapabilitiesUse.cs
- IPAddressCollection.cs
- PropertyCondition.cs
- DesignTimeSiteMapProvider.cs
- ToolboxItem.cs
- NextPreviousPagerField.cs
- SizeLimitedCache.cs
- LinearGradientBrush.cs
- DynamicQueryableWrapper.cs
- TextSegment.cs
- PromptEventArgs.cs
- SafeThemeHandle.cs
- ExtendedPropertyCollection.cs
- ScrollBarAutomationPeer.cs
- XsdDataContractImporter.cs
- ZipIORawDataFileBlock.cs
- Preprocessor.cs
- ApplicationServiceManager.cs
- EntityViewGenerationAttribute.cs
- MessageDesigner.cs
- PageParserFilter.cs
- CutCopyPasteHelper.cs
- PhonemeEventArgs.cs
- DoubleAverageAggregationOperator.cs
- CompositeDataBoundControl.cs
- SchemaMapping.cs
- ToolConsole.cs
- ViewValidator.cs
- TimeSpanSecondsConverter.cs
- DataGridSortingEventArgs.cs
- SocketInformation.cs
- CompositeDesignerAccessibleObject.cs
- BackEase.cs
- ParameterInfo.cs
- SmtpNtlmAuthenticationModule.cs
- DataRelation.cs
- QueryContinueDragEvent.cs
- Size.cs
- CodeVariableReferenceExpression.cs
- SqlProviderServices.cs
- CqlGenerator.cs
- CommittableTransaction.cs
- SourceFileBuildProvider.cs
- TableRow.cs
- Positioning.cs
- UInt32Converter.cs
- TemplateNameScope.cs
- FixedFlowMap.cs
- Int32AnimationBase.cs
- HealthMonitoringSectionHelper.cs
- WebUtil.cs
- Models.cs
- IxmlLineInfo.cs
- TdsValueSetter.cs
- EntityTypeBase.cs