Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / Workflow / Activities / ReceiveActivityValidator.cs / 1305376 / ReceiveActivityValidator.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.Workflow.Activities
{
using System.ServiceModel;
using System.Reflection;
using System.Collections.Generic;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Compiler;
class ReceiveActivityValidator : CompositeActivityValidator
{
public override ValidationErrorCollection Validate(
ValidationManager manager,
object obj)
{
ValidationErrorCollection validationErrors = base.Validate(manager, obj);
ReceiveActivity receiveActivity = obj as ReceiveActivity;
if (receiveActivity == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("obj",
SR2.GetString(SR2.Error_ArgumentTypeInvalid, "obj", typeof(ReceiveActivity)));
}
ITypeProvider typeProvider = manager.GetService(typeof(ITypeProvider)) as ITypeProvider;
if (typeProvider == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(
SR2.GetString(SR2.General_MissingService, typeof(ITypeProvider).Name)));
}
if (receiveActivity.ServiceOperationInfo == null)
{
validationErrors.Add(
new ValidationError(
SR2.GetString(SR2.Error_Validation_OperationInfoNotSpecified, receiveActivity.Name),
WorkflowServicesErrorNumbers.Error_OperationInfoNotSpecified,
false,
"ServiceOperationInfo"));
}
else
{
// validate operation info
//
ValidationErrorCollection operationInfoValidationErrors =
ValidationHelper.ValidateOperationInfo(
receiveActivity,
receiveActivity.ServiceOperationInfo,
manager);
validationErrors.AddRange(operationInfoValidationErrors);
// do not validate parameter binding if the operation info is not valid
// we might generate noise and false positives.
//
if (operationInfoValidationErrors.Count == 0)
{
validationErrors.AddRange(
ValidationHelper.ValidateParameterBindings(receiveActivity, receiveActivity.ServiceOperationInfo,
receiveActivity.ParameterBindings, manager));
}
// validate the context token
//
validationErrors.AddRange(
ValidationHelper.ValidateContextToken(receiveActivity, receiveActivity.ContextToken, manager));
}
// Check if the validation for all service operations being implemented
// has been done previously.
// If it has been done once then ServiceOperationsImplementedValidationMarker
// will be on the context stack.
//
if (validationErrors.Count == 0 &&
manager.Context[typeof(ServiceOperationsImplementedValidationMarker)] == null)
{
Activity rootActivity = receiveActivity;
while (rootActivity.Parent != null)
{
rootActivity = rootActivity.Parent;
}
validationErrors.AddRange(
ValidationHelper.ValidateAllServiceOperationsImplemented(
manager,
rootActivity));
}
return validationErrors;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValidatorCompatibilityHelper.cs
- JournalNavigationScope.cs
- XmlSchemaObjectTable.cs
- MouseActionConverter.cs
- AuthenticationManager.cs
- XmlCharacterData.cs
- ExceptionHelpers.cs
- EdmToObjectNamespaceMap.cs
- EntityClassGenerator.cs
- DataGridBoolColumn.cs
- XmlIgnoreAttribute.cs
- StdValidatorsAndConverters.cs
- HtmlTableRowCollection.cs
- Splitter.cs
- ArgumentNullException.cs
- WebPartMenuStyle.cs
- Stylesheet.cs
- PropertyMetadata.cs
- CapabilitiesAssignment.cs
- StringToken.cs
- SynchronizedInputProviderWrapper.cs
- BooleanToVisibilityConverter.cs
- RuntimeConfig.cs
- ObjectParameterCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- EventLog.cs
- LOSFormatter.cs
- ILGenerator.cs
- SQLChars.cs
- DetailsViewActionList.cs
- GraphicsPathIterator.cs
- RawKeyboardInputReport.cs
- SerializationEventsCache.cs
- EventDescriptor.cs
- LinearGradientBrush.cs
- _BaseOverlappedAsyncResult.cs
- MethodToken.cs
- WebPartEditorCancelVerb.cs
- Tag.cs
- DynamicObject.cs
- indexingfiltermarshaler.cs
- WebHttpSecurity.cs
- ExpressionTextBox.xaml.cs
- TransactionOptions.cs
- XmlSchemaExporter.cs
- OraclePermissionAttribute.cs
- BuildProvidersCompiler.cs
- ExceptionNotification.cs
- TemplateApplicationHelper.cs
- DescendantQuery.cs
- TableLayoutPanelDesigner.cs
- GroupBox.cs
- Encoder.cs
- DropDownHolder.cs
- MergeExecutor.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- TemplateXamlParser.cs
- PenThreadWorker.cs
- WhiteSpaceTrimStringConverter.cs
- ImageKeyConverter.cs
- Point3DCollectionConverter.cs
- TokenBasedSetEnumerator.cs
- CommentEmitter.cs
- EdmRelationshipRoleAttribute.cs
- ServiceDeploymentInfo.cs
- Util.cs
- JavaScriptString.cs
- SqlDataSourceStatusEventArgs.cs
- IndicShape.cs
- SimpleType.cs
- IPipelineRuntime.cs
- WebPartTransformerCollection.cs
- SchemaImporter.cs
- NonParentingControl.cs
- MediaPlayerState.cs
- SocketElement.cs
- StateManagedCollection.cs
- HostingEnvironment.cs
- ListBox.cs
- AttachedAnnotation.cs
- FtpCachePolicyElement.cs
- TypeDescriptionProvider.cs
- InternalConfigHost.cs
- WinFormsUtils.cs
- ParseElement.cs
- HttpResponse.cs
- DateTimeEditor.cs
- Tuple.cs
- CustomErrorsSectionWrapper.cs
- HiddenFieldPageStatePersister.cs
- Matrix3DStack.cs
- LookupNode.cs
- FontInfo.cs
- WSSecurityOneDotOneSendSecurityHeader.cs
- GeneralTransform3DTo2DTo3D.cs
- BinaryCommonClasses.cs
- InternalsVisibleToAttribute.cs
- RijndaelManagedTransform.cs
- EffectiveValueEntry.cs
- XmlElement.cs