Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / And.cs / 1305376 / And.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Expressions { using System.Activities; using System.Activities.Statements; using System.Linq.Expressions; using System.Activities.Validation; using System.Collections.Generic; using System.ComponentModel; using System.Runtime; using System.Diagnostics.CodeAnalysis; [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [And])")] public sealed class And: CodeActivity { //Lock is not needed for operationFunction here. The reason is that delegates for a given And 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.And, 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
- MdImport.cs
- WindowsImpersonationContext.cs
- ScrollChangedEventArgs.cs
- Converter.cs
- RuleValidation.cs
- PageHandlerFactory.cs
- BuildDependencySet.cs
- StretchValidation.cs
- XmlHierarchicalEnumerable.cs
- Expressions.cs
- sqlcontext.cs
- ResumeStoryboard.cs
- ItemChangedEventArgs.cs
- DataBoundControlAdapter.cs
- EnumType.cs
- HtmlShim.cs
- EventWaitHandleSecurity.cs
- RedirectionProxy.cs
- SimpleColumnProvider.cs
- XamlWriter.cs
- UnsignedPublishLicense.cs
- PlaceHolder.cs
- VideoDrawing.cs
- DateTimeFormatInfo.cs
- VisualTreeUtils.cs
- FontNamesConverter.cs
- TextBox.cs
- DescendentsWalker.cs
- BamlLocalizabilityResolver.cs
- Cursors.cs
- Vector3DKeyFrameCollection.cs
- PlanCompilerUtil.cs
- WebPartMenuStyle.cs
- CrossAppDomainChannel.cs
- CodeIdentifiers.cs
- TextPointer.cs
- ListViewCancelEventArgs.cs
- StringSorter.cs
- ZipIOExtraField.cs
- CultureSpecificStringDictionary.cs
- WsdlBuildProvider.cs
- EventToken.cs
- MailDefinitionBodyFileNameEditor.cs
- MbpInfo.cs
- SymDocumentType.cs
- TextBoxAutoCompleteSourceConverter.cs
- BindingGroup.cs
- MethodBuilder.cs
- HitTestWithPointDrawingContextWalker.cs
- PrefixHandle.cs
- OutputCacheSettingsSection.cs
- Psha1DerivedKeyGeneratorHelper.cs
- SHA384Cng.cs
- ToggleButton.cs
- NGCSerializationManagerAsync.cs
- BitmapData.cs
- SqlInternalConnectionTds.cs
- DbParameterHelper.cs
- CrossContextChannel.cs
- ZipIOBlockManager.cs
- DataTemplateKey.cs
- InputScope.cs
- TextStore.cs
- MemoryStream.cs
- FilePrompt.cs
- LinkUtilities.cs
- IxmlLineInfo.cs
- AutomationIdentifier.cs
- SectionVisual.cs
- SoapAttributeAttribute.cs
- BrowserDefinitionCollection.cs
- BrowserDefinitionCollection.cs
- ClientScriptItem.cs
- ProfileSettings.cs
- WorkflowServiceBehavior.cs
- PreviewKeyDownEventArgs.cs
- listitem.cs
- HostingPreferredMapPath.cs
- BaseValidator.cs
- DocumentOutline.cs
- _BaseOverlappedAsyncResult.cs
- CompressedStack.cs
- OutputCacheProfile.cs
- HtmlInputRadioButton.cs
- WebServiceEnumData.cs
- EntityCommandCompilationException.cs
- StreamedFramingRequestChannel.cs
- GridViewUpdatedEventArgs.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- SystemWebCachingSectionGroup.cs
- WhitespaceRuleLookup.cs
- UpdatePanelTrigger.cs
- EntityConnectionStringBuilderItem.cs
- StreamMarshaler.cs
- CodeParameterDeclarationExpression.cs
- ProfileProvider.cs
- WebPermission.cs
- CompiledELinqQueryState.cs
- CapabilitiesState.cs
- SafeNativeMethodsCLR.cs