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
- RoleGroupCollection.cs
- exports.cs
- TextSearch.cs
- FixedPageStructure.cs
- PipeStream.cs
- SecurityPermission.cs
- Line.cs
- SecurityKeyUsage.cs
- DbConnectionPoolOptions.cs
- OracleCommandSet.cs
- AttributeEmitter.cs
- WorkflowClientDeliverMessageWrapper.cs
- HyperLinkColumn.cs
- EntityDataSourceMemberPath.cs
- PropertyConverter.cs
- WrappedReader.cs
- ServiceNameElementCollection.cs
- PersistenceProviderElement.cs
- StaticFileHandler.cs
- PaperSize.cs
- SelectiveScrollingGrid.cs
- CountdownEvent.cs
- TextInfo.cs
- QueryContinueDragEvent.cs
- MaterialCollection.cs
- RenderingEventArgs.cs
- ForwardPositionQuery.cs
- HttpDictionary.cs
- UrlAuthFailedErrorFormatter.cs
- LicFileLicenseProvider.cs
- OdbcParameter.cs
- SymbolMethod.cs
- GuidelineCollection.cs
- DtdParser.cs
- SessionStateContainer.cs
- ECDiffieHellmanCngPublicKey.cs
- CodeBlockBuilder.cs
- DoubleLinkList.cs
- MdiWindowListStrip.cs
- PolicyUnit.cs
- ValueQuery.cs
- ConfigurationValidatorAttribute.cs
- CacheOutputQuery.cs
- ComplexTypeEmitter.cs
- FrameworkElementFactoryMarkupObject.cs
- ToolStripRenderEventArgs.cs
- DataStorage.cs
- WebDisplayNameAttribute.cs
- TextBoxView.cs
- ConfigurationSectionHelper.cs
- ProxySimple.cs
- SqlClientPermission.cs
- XmlSchemaExternal.cs
- AttachInfo.cs
- MutexSecurity.cs
- PersonalizationStateInfoCollection.cs
- CursorInteropHelper.cs
- StringExpressionSet.cs
- SortDescription.cs
- TextCompositionEventArgs.cs
- CompilerErrorCollection.cs
- WebPartConnectionsCloseVerb.cs
- ResizeGrip.cs
- MergablePropertyAttribute.cs
- IntSecurity.cs
- XmlHierarchicalDataSourceView.cs
- TreeViewCancelEvent.cs
- _NetRes.cs
- QuerySelectOp.cs
- InplaceBitmapMetadataWriter.cs
- Canvas.cs
- VerticalAlignConverter.cs
- UrlPath.cs
- ListViewDeletedEventArgs.cs
- Subordinate.cs
- _WinHttpWebProxyDataBuilder.cs
- PlainXmlSerializer.cs
- SystemSounds.cs
- ReturnType.cs
- Nullable.cs
- EdmFunction.cs
- DataServiceHostFactory.cs
- AutomationPattern.cs
- PackWebResponse.cs
- NetNamedPipeBindingElement.cs
- XmlQualifiedName.cs
- ObjectDataSourceStatusEventArgs.cs
- DataViewManager.cs
- GroupStyle.cs
- HtmlMeta.cs
- OrthographicCamera.cs
- RSAPKCS1SignatureFormatter.cs
- Polyline.cs
- GenericParameterDataContract.cs
- ComponentEditorForm.cs
- ObjectItemConventionAssemblyLoader.cs
- Utils.cs
- ChannelManager.cs
- Activator.cs
- TabletCollection.cs