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
- COMException.cs
- wmiutil.cs
- TextElementEnumerator.cs
- SiteOfOriginPart.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- TraceHelpers.cs
- NavigationWindowAutomationPeer.cs
- BrowserCapabilitiesCompiler.cs
- ApplicationInterop.cs
- Restrictions.cs
- COAUTHINFO.cs
- MouseCaptureWithinProperty.cs
- HitTestParameters3D.cs
- HttpContext.cs
- Peer.cs
- EllipticalNodeOperations.cs
- SID.cs
- SqlBuilder.cs
- SmiRequestExecutor.cs
- XmlDocumentSerializer.cs
- TextTrailingCharacterEllipsis.cs
- TreeViewAutomationPeer.cs
- DataGridViewComboBoxColumnDesigner.cs
- GifBitmapEncoder.cs
- DesignerActionPropertyItem.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- StatusStrip.cs
- mediaeventshelper.cs
- StringToken.cs
- InboundActivityHelper.cs
- SqlNodeAnnotation.cs
- OleDbTransaction.cs
- Line.cs
- BooleanConverter.cs
- StringSource.cs
- WSDualHttpSecurityElement.cs
- MetafileHeader.cs
- ListBoxItemWrapperAutomationPeer.cs
- DrawingCollection.cs
- InputMethod.cs
- DesignSurfaceManager.cs
- AtomPub10CategoriesDocumentFormatter.cs
- ObjectKeyFrameCollection.cs
- DbQueryCommandTree.cs
- TransactionManager.cs
- SchemaManager.cs
- DefaultPropertiesToSend.cs
- SafeCryptHandles.cs
- HtmlHistory.cs
- WeakRefEnumerator.cs
- ScriptResourceDefinition.cs
- MobileErrorInfo.cs
- PermissionRequestEvidence.cs
- TransportDefaults.cs
- XmlAttributeHolder.cs
- Margins.cs
- TaskFileService.cs
- StreamSecurityUpgradeProvider.cs
- AnnotationResource.cs
- GrammarBuilderWildcard.cs
- WindowsTab.cs
- WinEventWrap.cs
- OleDbParameterCollection.cs
- Error.cs
- SourceCollection.cs
- SecuritySessionFilter.cs
- XamlParser.cs
- SystemMulticastIPAddressInformation.cs
- FlowLayoutSettings.cs
- AtomMaterializerLog.cs
- LambdaCompiler.cs
- CodeCommentStatement.cs
- SchemaObjectWriter.cs
- RootBrowserWindow.cs
- translator.cs
- mediaeventargs.cs
- StreamedFramingRequestChannel.cs
- WebPartEditVerb.cs
- AdapterDictionary.cs
- BitmapEffect.cs
- AccessorTable.cs
- SQLStringStorage.cs
- DataShape.cs
- ProgressChangedEventArgs.cs
- BoundsDrawingContextWalker.cs
- SqlConnectionPoolProviderInfo.cs
- DataList.cs
- Point3D.cs
- ColorTranslator.cs
- ReaderOutput.cs
- BrushProxy.cs
- AutomationPatternInfo.cs
- PlanCompilerUtil.cs
- BlurEffect.cs
- XmlException.cs
- RectangleF.cs
- XsltArgumentList.cs
- DeviceContexts.cs
- InternalsVisibleToAttribute.cs
- ImageInfo.cs