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
- TemplatePagerField.cs
- EntityClassGenerator.cs
- RoleGroupCollection.cs
- ChannelHandler.cs
- OverloadGroupAttribute.cs
- TreeNodeStyle.cs
- AsyncOperationManager.cs
- DBNull.cs
- sqlmetadatafactory.cs
- RuleElement.cs
- UnmanagedMemoryStream.cs
- StoreAnnotationsMap.cs
- CompilerErrorCollection.cs
- webproxy.cs
- MailDefinitionBodyFileNameEditor.cs
- OrderablePartitioner.cs
- Trace.cs
- DllNotFoundException.cs
- DictionaryEntry.cs
- Thread.cs
- ResourceDictionaryCollection.cs
- WorkflowFileItem.cs
- PackageDigitalSignatureManager.cs
- IdleTimeoutMonitor.cs
- MouseGesture.cs
- UpdatableGenericsFeature.cs
- NotifyInputEventArgs.cs
- MasterPageParser.cs
- Content.cs
- CreateUserWizard.cs
- InheritanceContextHelper.cs
- ReferenceEqualityComparer.cs
- EventMappingSettings.cs
- Accessible.cs
- Overlapped.cs
- PartialCachingControl.cs
- NonSerializedAttribute.cs
- ThicknessAnimationBase.cs
- LazyTextWriterCreator.cs
- MachinePropertyVariants.cs
- WebSysDisplayNameAttribute.cs
- Accessible.cs
- RowUpdatedEventArgs.cs
- StrongNameUtility.cs
- CapabilitiesSection.cs
- BoolExpression.cs
- WebPartConnectVerb.cs
- QueryCacheEntry.cs
- RoleManagerSection.cs
- SqlDataSourceCommandEventArgs.cs
- SQLChars.cs
- HtmlImage.cs
- TdsParserStaticMethods.cs
- DynamicFilter.cs
- Pens.cs
- BaseProcessor.cs
- BindingContext.cs
- StorageEntitySetMapping.cs
- XmlValidatingReader.cs
- PassportAuthenticationModule.cs
- _SslStream.cs
- OrderedParallelQuery.cs
- SHA1Managed.cs
- StorageEntityTypeMapping.cs
- CapabilitiesRule.cs
- TrustManager.cs
- XmlAtomErrorReader.cs
- FocusTracker.cs
- TextEditorLists.cs
- DataGrid.cs
- GroupBox.cs
- DependencyPropertyAttribute.cs
- HScrollProperties.cs
- DispatchChannelSink.cs
- TemplateEditingService.cs
- ToggleButtonAutomationPeer.cs
- ListSortDescription.cs
- WinFormsSpinner.cs
- ToolStripProgressBar.cs
- WebBrowserPermission.cs
- TerminatorSinks.cs
- ErrorsHelper.cs
- Camera.cs
- ColumnBinding.cs
- DataServiceResponse.cs
- WindowsFormsHost.cs
- HandleCollector.cs
- ToggleButton.cs
- PasswordPropertyTextAttribute.cs
- DrawingAttributesDefaultValueFactory.cs
- XslVisitor.cs
- InvokeHandlers.cs
- hresults.cs
- TypeTypeConverter.cs
- ImageMapEventArgs.cs
- RepeatEnumerable.cs
- XmlSerializerFactory.cs
- MembershipValidatePasswordEventArgs.cs
- SqlConnectionPoolGroupProviderInfo.cs
- XmlSchemaSet.cs