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
- _NestedMultipleAsyncResult.cs
- WebConfigurationFileMap.cs
- DrawingImage.cs
- VBCodeProvider.cs
- URIFormatException.cs
- ToolStripRenderEventArgs.cs
- StringValueSerializer.cs
- HtmlSelect.cs
- ProxyHelper.cs
- ThreadNeutralSemaphore.cs
- XmlTextAttribute.cs
- ContextMarshalException.cs
- Currency.cs
- SeekStoryboard.cs
- DefaultCommandExtensionCallback.cs
- Int32AnimationBase.cs
- ScrollContentPresenter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- RelationshipManager.cs
- TraceRecord.cs
- DataGridViewCell.cs
- COM2ExtendedUITypeEditor.cs
- CreateUserWizard.cs
- Atom10FeedFormatter.cs
- Point.cs
- PropertyFilter.cs
- BlurBitmapEffect.cs
- EDesignUtil.cs
- GeneralEndpointIdentity.cs
- ClaimComparer.cs
- FontUnit.cs
- PermissionSet.cs
- DataGridViewCellPaintingEventArgs.cs
- ObjectStateFormatter.cs
- EntitySqlQueryState.cs
- DynamicDataRouteHandler.cs
- SendMailErrorEventArgs.cs
- ListViewContainer.cs
- HeaderedContentControl.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ObjectSecurity.cs
- PackWebResponse.cs
- PermissionSetEnumerator.cs
- AppDomainFactory.cs
- XmlDataDocument.cs
- Literal.cs
- SequenceRangeCollection.cs
- TextEditorMouse.cs
- DistributedTransactionPermission.cs
- EntityParameter.cs
- XmlWrappingWriter.cs
- RowTypePropertyElement.cs
- LocalizableAttribute.cs
- CodeAssignStatement.cs
- FormViewUpdatedEventArgs.cs
- CacheVirtualItemsEvent.cs
- DataControlButton.cs
- TimelineGroup.cs
- EncoderFallback.cs
- PropertyCondition.cs
- Error.cs
- StrongNamePublicKeyBlob.cs
- PerformanceCounterCategory.cs
- EntityDesignerDataSourceView.cs
- Glyph.cs
- ClassValidator.cs
- ValueExpressions.cs
- MessageContractAttribute.cs
- ErrorFormatter.cs
- DispatcherSynchronizationContext.cs
- RtfFormatStack.cs
- Dispatcher.cs
- PerformanceCounterPermissionEntryCollection.cs
- SerializableTypeCodeDomSerializer.cs
- ProviderUtil.cs
- PrintDialog.cs
- SourceChangedEventArgs.cs
- XmlWellformedWriter.cs
- XD.cs
- InvalidPrinterException.cs
- ServicesSection.cs
- TransformValueSerializer.cs
- mactripleDES.cs
- Rfc2898DeriveBytes.cs
- ToolboxBitmapAttribute.cs
- StrokeNodeEnumerator.cs
- EventEntry.cs
- XmlSchemaImport.cs
- BehaviorEditorPart.cs
- _DigestClient.cs
- ToolStripDropDownClosedEventArgs.cs
- Input.cs
- RegularExpressionValidator.cs
- XmlUtilWriter.cs
- Model3DCollection.cs
- WebPartConnectVerb.cs
- CodeNamespaceCollection.cs
- FastEncoderStatics.cs
- HandlerFactoryCache.cs
- IisTraceWebEventProvider.cs