Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / Or.cs / 1305376 / Or.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Expressions
{
using System.Activities;
using System.Activities.Validation;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq.Expressions;
using System.Runtime;
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords,
Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [Or])")]
public sealed class Or : CodeActivity
{
//Lock is not needed for operationFunction here. The reason is that delegates for a given Or are the same.
//It's possible that 2 threads are assigning the operationFucntion at the same time. But it's okay because the compiled codes are the same.
static Func operationFunction;
[RequiredArgument]
[DefaultValue(null)]
public InArgument Left
{
get;
set;
}
[RequiredArgument]
[DefaultValue(null)]
public InArgument Right
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
BinaryExpressionHelper.OnGetArguments(metadata, this.Left, this.Right);
if (operationFunction == null)
{
ValidationError validationError;
if (!BinaryExpressionHelper.TryGenerateLinqDelegate(ExpressionType.Or, out operationFunction, out validationError))
{
metadata.AddValidationError(validationError);
}
}
}
protected override TResult Execute(CodeActivityContext context)
{
Fx.Assert(operationFunction != null, "OperationFunction must exist.");
TLeft leftValue = this.Left.Get(context);
TRight rightValue = this.Right.Get(context);
return operationFunction(leftValue, rightValue);
}
}
}
// 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
- SqlBooleanizer.cs
- srgsitem.cs
- ColorContext.cs
- DateTimeSerializationSection.cs
- AbandonedMutexException.cs
- RequiredAttributeAttribute.cs
- Parameter.cs
- FileLevelControlBuilderAttribute.cs
- LayoutManager.cs
- Stack.cs
- TrailingSpaceComparer.cs
- MediaContextNotificationWindow.cs
- Knowncolors.cs
- MethodAccessException.cs
- TraceContextEventArgs.cs
- SoundPlayer.cs
- RecognizerInfo.cs
- Expander.cs
- LineUtil.cs
- OleDbPermission.cs
- DataGridColumnStyleMappingNameEditor.cs
- DiscreteKeyFrames.cs
- IDictionary.cs
- EntityContainerRelationshipSetEnd.cs
- ParallelLoopState.cs
- EditorZoneBase.cs
- GenericWebPart.cs
- XPathCompileException.cs
- TheQuery.cs
- PassportAuthentication.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- EmptyElement.cs
- dbenumerator.cs
- EmbossBitmapEffect.cs
- DesignTimeParseData.cs
- CultureInfo.cs
- DataGridViewImageColumn.cs
- XsltInput.cs
- ToolboxBitmapAttribute.cs
- FileAuthorizationModule.cs
- BuiltInPermissionSets.cs
- HMACSHA512.cs
- SqlXml.cs
- DBDataPermission.cs
- Matrix3DConverter.cs
- ArrangedElement.cs
- StrongNameKeyPair.cs
- ListViewItem.cs
- CompoundFileStorageReference.cs
- IOException.cs
- SimpleApplicationHost.cs
- ButtonField.cs
- WmpBitmapDecoder.cs
- ReadOnlyCollectionBase.cs
- KerberosTicketHashIdentifierClause.cs
- ExceptionUtil.cs
- WebEventCodes.cs
- HwndSource.cs
- ReverseInheritProperty.cs
- SqlDataSourceConfigureSelectPanel.cs
- CodeDomSerializer.cs
- MasterPageBuildProvider.cs
- TargetParameterCountException.cs
- VisualBasicImportReference.cs
- FixedSOMPageConstructor.cs
- CodePrimitiveExpression.cs
- DbConnectionStringCommon.cs
- SamlSecurityTokenAuthenticator.cs
- SymmetricAlgorithm.cs
- EditingCoordinator.cs
- ADMembershipProvider.cs
- PageClientProxyGenerator.cs
- CustomCategoryAttribute.cs
- LateBoundBitmapDecoder.cs
- MessageHeaderException.cs
- SharedStatics.cs
- sqlpipe.cs
- PluralizationServiceUtil.cs
- SignedXml.cs
- RecordManager.cs
- TextureBrush.cs
- MaskedTextBox.cs
- ExpressionBindingCollection.cs
- RegexParser.cs
- RequestUriProcessor.cs
- DrawingGroupDrawingContext.cs
- Rect3D.cs
- MessageDescriptionCollection.cs
- XmlSchemaExporter.cs
- SecurityResources.cs
- _UncName.cs
- XmlSchemaSimpleType.cs
- AuthorizationSection.cs
- IgnoreFlushAndCloseStream.cs
- Constraint.cs
- SkinBuilder.cs
- CodeExporter.cs
- UpdateException.cs
- DBSchemaTable.cs
- FileReader.cs