Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / Not.cs / 1305376 / Not.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 [Not])")]
public sealed class Not : CodeActivity
{
//Lock is not needed for operationFunction here. The reason is that delegates for a given Not 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 Operand
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
UnaryExpressionHelper.OnGetArguments(metadata, this.Operand);
if (operationFunction == null)
{
ValidationError validationError;
if (!UnaryExpressionHelper.TryGenerateLinqDelegate(ExpressionType.Not, out operationFunction, out validationError))
{
metadata.AddValidationError(validationError);
}
}
}
protected override TResult Execute(CodeActivityContext context)
{
Fx.Assert(operationFunction != null, "OperationFunction must exist.");
TOperand operandValue = this.Operand.Get(context);
return operationFunction(operandValue);
}
}
}
// 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
- NotificationContext.cs
- RuleSetDialog.cs
- PropertyManager.cs
- TdsValueSetter.cs
- DocumentXPathNavigator.cs
- TextElementEnumerator.cs
- SemanticAnalyzer.cs
- SoapSchemaExporter.cs
- ByteConverter.cs
- NameValuePair.cs
- FileReader.cs
- ItemsControl.cs
- CrossAppDomainChannel.cs
- ParameterCollectionEditorForm.cs
- XmlSerializableReader.cs
- MenuAutomationPeer.cs
- DiscoveryCallbackBehavior.cs
- Terminate.cs
- WebBrowserPermission.cs
- NodeLabelEditEvent.cs
- DesignerDataSourceView.cs
- XmlHierarchyData.cs
- OrCondition.cs
- ToolTip.cs
- ContentControl.cs
- RecordsAffectedEventArgs.cs
- DependentList.cs
- SynchronizedDisposablePool.cs
- BinaryUtilClasses.cs
- CommentEmitter.cs
- TextDecoration.cs
- ControlParser.cs
- ThreadStateException.cs
- SinglePageViewer.cs
- TranslateTransform3D.cs
- SqlCaseSimplifier.cs
- MarshalByRefObject.cs
- HScrollProperties.cs
- TreeViewImageIndexConverter.cs
- CheckBoxFlatAdapter.cs
- OracleInternalConnection.cs
- CheckBox.cs
- FunctionDescription.cs
- XmlSchema.cs
- HostVisual.cs
- _KerberosClient.cs
- SecurityProtocolCorrelationState.cs
- KeyEvent.cs
- InputMethodStateChangeEventArgs.cs
- EventManager.cs
- HttpCapabilitiesBase.cs
- TemplateBaseAction.cs
- CompModSwitches.cs
- ControlSerializer.cs
- ViewgenGatekeeper.cs
- bidPrivateBase.cs
- IntranetCredentialPolicy.cs
- Matrix3DConverter.cs
- SurrogateDataContract.cs
- Brush.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ProxyAttribute.cs
- ParserHooks.cs
- MD5.cs
- ReservationCollection.cs
- AuthenticationConfig.cs
- FileIOPermission.cs
- WebService.cs
- DeflateInput.cs
- BinaryUtilClasses.cs
- Command.cs
- CodeGenHelper.cs
- Propagator.ExtentPlaceholderCreator.cs
- DynamicScriptObject.cs
- ResponseStream.cs
- ConfigurationPropertyAttribute.cs
- PerformanceCountersElement.cs
- TemplateControlBuildProvider.cs
- DelegatingConfigHost.cs
- RSAOAEPKeyExchangeDeformatter.cs
- OrCondition.cs
- AdornerDecorator.cs
- DebugView.cs
- ProcessProtocolHandler.cs
- SystemUnicastIPAddressInformation.cs
- JapaneseCalendar.cs
- listitem.cs
- EnumerableCollectionView.cs
- RegularExpressionValidator.cs
- SQLCharsStorage.cs
- PkcsMisc.cs
- EdmComplexTypeAttribute.cs
- BrowsableAttribute.cs
- SettingsPropertyWrongTypeException.cs
- JapaneseCalendar.cs
- DiagnosticsConfigurationHandler.cs
- SiteMapNodeItem.cs
- TreeViewDesigner.cs
- CompiledQueryCacheKey.cs
- RSACryptoServiceProvider.cs