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
- SizeValueSerializer.cs
- QueryAccessibilityHelpEvent.cs
- DbConnectionPoolGroup.cs
- RoleManagerModule.cs
- DataPagerFieldCommandEventArgs.cs
- ExceptionValidationRule.cs
- ValueChangedEventManager.cs
- RequiredAttributeAttribute.cs
- TcpTransportBindingElement.cs
- XmlSequenceWriter.cs
- HorizontalAlignConverter.cs
- OpCellTreeNode.cs
- MetadataHelper.cs
- Matrix.cs
- DbMetaDataFactory.cs
- UiaCoreProviderApi.cs
- TdsRecordBufferSetter.cs
- CounterCreationDataCollection.cs
- ManagementPath.cs
- XmlQueryContext.cs
- CommentGlyph.cs
- HttpDigestClientElement.cs
- ExpressionBindingsDialog.cs
- ImportOptions.cs
- PropertyCondition.cs
- MultiTrigger.cs
- MailMessageEventArgs.cs
- ConnectionConsumerAttribute.cs
- PointLightBase.cs
- WorkflowItemPresenter.cs
- ReadContentAsBinaryHelper.cs
- ValidatingReaderNodeData.cs
- MouseEvent.cs
- PageRanges.cs
- DataGridLinkButton.cs
- SizeFConverter.cs
- UTF7Encoding.cs
- Pair.cs
- AspNetHostingPermission.cs
- IdentityManager.cs
- WebColorConverter.cs
- DataGridViewMethods.cs
- StringToken.cs
- SafeCertificateStore.cs
- ClientRoleProvider.cs
- SecurityPolicySection.cs
- PersonalizationProvider.cs
- ParserStreamGeometryContext.cs
- DataSourceCache.cs
- ScriptingJsonSerializationSection.cs
- XpsDigitalSignature.cs
- BindingList.cs
- SwitchCase.cs
- BulletedList.cs
- InstanceData.cs
- AnonymousIdentificationSection.cs
- OracleFactory.cs
- XmlSerializableReader.cs
- ServiceOperation.cs
- X509Extension.cs
- AnnouncementInnerClientCD1.cs
- FieldAccessException.cs
- securitymgrsite.cs
- BindingNavigator.cs
- ListCardsInFileRequest.cs
- DesignerSerializerAttribute.cs
- ReaderWriterLockWrapper.cs
- BounceEase.cs
- CustomError.cs
- AbandonedMutexException.cs
- ListInitExpression.cs
- RadioButton.cs
- DataSvcMapFile.cs
- TypeUtil.cs
- AutoGeneratedField.cs
- TemplateKeyConverter.cs
- OracleInfoMessageEventArgs.cs
- WindowAutomationPeer.cs
- DBConnection.cs
- Msmq4SubqueuePoisonHandler.cs
- Convert.cs
- Simplifier.cs
- DefaultValueTypeConverter.cs
- DataServiceQueryProvider.cs
- DataGridViewCellConverter.cs
- TextParagraphCache.cs
- _TransmitFileOverlappedAsyncResult.cs
- ProxyAttribute.cs
- DataGridViewTextBoxColumn.cs
- InputLanguageCollection.cs
- DependencyObjectCodeDomSerializer.cs
- XmlIncludeAttribute.cs
- DataSourceExpressionCollection.cs
- CustomErrorsSection.cs
- DeflateInput.cs
- CodeSnippetCompileUnit.cs
- IRCollection.cs
- EventLogLink.cs
- DigestTraceRecordHelper.cs
- Column.cs