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
- AttachedPropertyMethodSelector.cs
- FileDialogCustomPlaces.cs
- StringOutput.cs
- TextModifier.cs
- ReflectionServiceProvider.cs
- LinkedResource.cs
- TableRowGroup.cs
- EventProviderWriter.cs
- ByteConverter.cs
- BindingNavigator.cs
- DataGridViewSortCompareEventArgs.cs
- HtmlObjectListAdapter.cs
- XmlQueryOutput.cs
- AddInContractAttribute.cs
- DocumentApplicationJournalEntry.cs
- UnauthorizedWebPart.cs
- XamlDesignerSerializationManager.cs
- AssociationTypeEmitter.cs
- DelayedRegex.cs
- DbParameterCollectionHelper.cs
- LineVisual.cs
- ComponentResourceManager.cs
- Crypto.cs
- StoreContentChangedEventArgs.cs
- EntitySet.cs
- ScrollBarAutomationPeer.cs
- SequenceDesigner.cs
- DataMemberConverter.cs
- SystemColorTracker.cs
- QueryOpeningEnumerator.cs
- DynamicILGenerator.cs
- HtmlDocument.cs
- FixedPage.cs
- XmlSchemaSequence.cs
- TypedReference.cs
- Parameter.cs
- CreateUserWizardStep.cs
- NavigationPropertyEmitter.cs
- wgx_sdk_version.cs
- Identity.cs
- Brush.cs
- RtfToken.cs
- Codec.cs
- AssemblyCollection.cs
- GB18030Encoding.cs
- BufferedGraphicsContext.cs
- XmlSchemaComplexContent.cs
- TcpChannelFactory.cs
- TreeBuilder.cs
- StructuralType.cs
- FlowDocumentPaginator.cs
- FontClient.cs
- Renderer.cs
- FixedSOMTextRun.cs
- DiscoveryReferences.cs
- CommandField.cs
- ControlCommandSet.cs
- DocumentPage.cs
- GridView.cs
- COM2Enum.cs
- ObjectCloneHelper.cs
- DesignerActionTextItem.cs
- StorageComplexPropertyMapping.cs
- AdCreatedEventArgs.cs
- StringComparer.cs
- SQLBytesStorage.cs
- MembershipUser.cs
- WrappedReader.cs
- VerificationException.cs
- StylusCaptureWithinProperty.cs
- DataTemplateKey.cs
- PtsHelper.cs
- XmlCodeExporter.cs
- DataGridViewCellValidatingEventArgs.cs
- CultureTableRecord.cs
- OrderPreservingMergeHelper.cs
- PopupRoot.cs
- ThaiBuddhistCalendar.cs
- ToolStripDropDownDesigner.cs
- LocationSectionRecord.cs
- DESCryptoServiceProvider.cs
- ViewService.cs
- BaseValidator.cs
- RegexFCD.cs
- PseudoWebRequest.cs
- Rotation3DAnimation.cs
- Object.cs
- SHA512Managed.cs
- PageAdapter.cs
- UInt64Converter.cs
- TypeConverterBase.cs
- DataGridViewCellCollection.cs
- HtmlTernaryTree.cs
- MediaContext.cs
- DataGridDesigner.cs
- ChtmlCommandAdapter.cs
- LocalizedNameDescriptionPair.cs
- ResolvedKeyFrameEntry.cs
- SingleStorage.cs
- GeometryCollection.cs