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
- Rotation3D.cs
- OutputCacheProviderCollection.cs
- DataGridViewCellParsingEventArgs.cs
- DataTableExtensions.cs
- RemoteWebConfigurationHostServer.cs
- SymmetricKeyWrap.cs
- FormViewDeleteEventArgs.cs
- SimpleType.cs
- ReadWriteObjectLock.cs
- TextFormatterHost.cs
- WebControlParameterProxy.cs
- FormsAuthenticationModule.cs
- MarshalDirectiveException.cs
- GridViewDesigner.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- WebBrowsableAttribute.cs
- DataServiceQuery.cs
- ZipIOBlockManager.cs
- COM2PropertyPageUITypeConverter.cs
- MarkedHighlightComponent.cs
- ListViewCommandEventArgs.cs
- DynamicPhysicalDiscoSearcher.cs
- ComponentSerializationService.cs
- RtfNavigator.cs
- RemotingConfigParser.cs
- FontConverter.cs
- TraceContextEventArgs.cs
- ToolStripCustomTypeDescriptor.cs
- DataGridViewCheckBoxCell.cs
- TextServicesContext.cs
- StrongNameIdentityPermission.cs
- GetPolicyDetailsRequest.cs
- MemoryMappedFile.cs
- WinEventWrap.cs
- StreamInfo.cs
- ShaperBuffers.cs
- OptimizerPatterns.cs
- Tile.cs
- ManifestResourceInfo.cs
- SafeFileMappingHandle.cs
- CallId.cs
- IndexedWhereQueryOperator.cs
- ErrorBehavior.cs
- StatusBarItemAutomationPeer.cs
- RectConverter.cs
- updatecommandorderer.cs
- ObjectConverter.cs
- DataContractSet.cs
- ButtonBase.cs
- InvalidCastException.cs
- Expression.cs
- CodeEntryPointMethod.cs
- Environment.cs
- ReferenceAssemblyAttribute.cs
- EventEntry.cs
- StatusBarItem.cs
- BlockCollection.cs
- RoleManagerSection.cs
- SqlCrossApplyToCrossJoin.cs
- BindingListCollectionView.cs
- ManagedCodeMarkers.cs
- messageonlyhwndwrapper.cs
- Vector3D.cs
- WizardStepBase.cs
- HttpException.cs
- Perspective.cs
- InteropBitmapSource.cs
- MethodCallTranslator.cs
- XmlHierarchyData.cs
- TableItemPattern.cs
- PathTooLongException.cs
- EdmValidator.cs
- ListBindableAttribute.cs
- TabPanel.cs
- CrossContextChannel.cs
- XPathDescendantIterator.cs
- NavigationProperty.cs
- XmlMtomReader.cs
- PropertyEntry.cs
- SortableBindingList.cs
- OneOfTypeConst.cs
- ResolveNameEventArgs.cs
- WorkflowInlining.cs
- LogEntryDeserializer.cs
- CellPartitioner.cs
- arc.cs
- IssuanceLicense.cs
- ProviderConnectionPoint.cs
- OpenFileDialog.cs
- SqlUserDefinedTypeAttribute.cs
- JoinGraph.cs
- HttpChannelBindingToken.cs
- HtmlTableRowCollection.cs
- AutomationElement.cs
- WmlCommandAdapter.cs
- PathBox.cs
- ConfigXmlWhitespace.cs
- Utils.cs
- EncodingNLS.cs
- DLinqDataModelProvider.cs