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
- ArrayItemValue.cs
- ServiceMemoryGates.cs
- XmlTypeAttribute.cs
- SqlExpander.cs
- ResourcePool.cs
- XmlSchemaType.cs
- ContentHostHelper.cs
- SafeArrayTypeMismatchException.cs
- WebReferencesBuildProvider.cs
- KerberosSecurityTokenAuthenticator.cs
- BamlReader.cs
- BitmapDownload.cs
- FragmentNavigationEventArgs.cs
- MarshalByRefObject.cs
- DbProviderConfigurationHandler.cs
- PropertyBuilder.cs
- LogLogRecordHeader.cs
- TreeNodeEventArgs.cs
- figurelengthconverter.cs
- OleDbPropertySetGuid.cs
- Span.cs
- InProcStateClientManager.cs
- SafeLibraryHandle.cs
- wmiprovider.cs
- BinaryParser.cs
- QueueProcessor.cs
- MissingManifestResourceException.cs
- Attributes.cs
- DocumentGridContextMenu.cs
- WeakRefEnumerator.cs
- XmlAttributeOverrides.cs
- StateMachineSubscriptionManager.cs
- SecurityCriticalDataForSet.cs
- FamilyCollection.cs
- OleDbCommand.cs
- JobDuplex.cs
- RolePrincipal.cs
- EntityViewContainer.cs
- Function.cs
- ConfigurationConverterBase.cs
- HostProtectionPermission.cs
- ExtendedPropertiesHandler.cs
- Int64AnimationBase.cs
- StructuralCache.cs
- GetWinFXPath.cs
- ActivityBindForm.Designer.cs
- CryptoStream.cs
- RoleGroupCollection.cs
- DefaultProxySection.cs
- ColumnMapVisitor.cs
- DocumentAutomationPeer.cs
- TransformConverter.cs
- SimpleWebHandlerParser.cs
- PageSettings.cs
- XmlSchemaExternal.cs
- PropertyFilter.cs
- ListViewUpdateEventArgs.cs
- InvalidAsynchronousStateException.cs
- XmlTextReaderImpl.cs
- ComponentCommands.cs
- ProfileManager.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- ProfileService.cs
- HostingPreferredMapPath.cs
- DataComponentGenerator.cs
- ProtocolsConfigurationHandler.cs
- XmlWhitespace.cs
- EndpointConfigContainer.cs
- ManifestResourceInfo.cs
- EdmSchemaAttribute.cs
- TextTreeTextElementNode.cs
- SpeechRecognizer.cs
- FlowPosition.cs
- StringSorter.cs
- ResourcesBuildProvider.cs
- WorkflowDefinitionDispenser.cs
- Page.cs
- Helper.cs
- DiscoveryInnerClientAdhocCD1.cs
- DataGridViewColumnHeaderCell.cs
- XmlSchemaInfo.cs
- FrameSecurityDescriptor.cs
- ImageIndexConverter.cs
- SvcFileManager.cs
- QuaternionAnimation.cs
- HtmlGenericControl.cs
- KoreanCalendar.cs
- StringCollection.cs
- ServiceModelInstallComponent.cs
- ImageMapEventArgs.cs
- SecurityDocument.cs
- FontFaceLayoutInfo.cs
- SafeEventLogReadHandle.cs
- Parser.cs
- WorkflowApplicationCompletedException.cs
- FunctionParameter.cs
- DateTimeValueSerializer.cs
- XhtmlConformanceSection.cs
- CancelEventArgs.cs
- ListItemViewAttribute.cs