Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / UnaryOperationBinder.cs / 1305376 / UnaryOperationBinder.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Dynamic.Utils; using System.Linq.Expressions; namespace System.Dynamic { ////// Represents the unary dynamic operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class UnaryOperationBinder : DynamicMetaObjectBinder { private ExpressionType _operation; ////// Initializes a new instance of the /// The unary operation kind. protected UnaryOperationBinder(ExpressionType operation) { ContractUtils.Requires(OperationIsValid(operation), "operation"); _operation = operation; } ///class. /// /// The result type of the operation. /// public override sealed Type ReturnType { get { switch(_operation) { case ExpressionType.IsFalse: case ExpressionType.IsTrue: return typeof(bool); default: return typeof(object); } } } ////// The unary operation kind. /// public ExpressionType Operation { get { return _operation; } } ////// Performs the binding of the unary dynamic operation if the target dynamic object cannot bind. /// /// The target of the dynamic unary operation. ///The public DynamicMetaObject FallbackUnaryOperation(DynamicMetaObject target) { return FallbackUnaryOperation(target, null); } ///representing the result of the binding. /// Performs the binding of the unary dynamic operation if the target dynamic object cannot bind. /// /// The target of the dynamic unary operation. /// The binding result in case the binding fails, or null. ///The public abstract DynamicMetaObject FallbackUnaryOperation(DynamicMetaObject target, DynamicMetaObject errorSuggestion); ///representing the result of the binding. /// Performs the binding of the dynamic unary operation. /// /// The target of the dynamic operation. /// An array of arguments of the dynamic operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.Requires(args == null || args.Length == 0, "args"); return target.BindUnaryOperation(this); } // this is a standard DynamicMetaObjectBinder internal override sealed bool IsStandardBinder { get { return true; } } internal static bool OperationIsValid(ExpressionType operation) { switch (operation) { #region Generated Unary Operation Binder Validator // *** BEGIN GENERATED CODE *** // generated by function: gen_unop_validator from: generate_tree.py case ExpressionType.Negate: case ExpressionType.UnaryPlus: case ExpressionType.Not: case ExpressionType.Decrement: case ExpressionType.Increment: case ExpressionType.OnesComplement: case ExpressionType.IsTrue: case ExpressionType.IsFalse: // *** END GENERATED CODE *** #endregion case ExpressionType.Extension: return true; default: return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.representing the result of the binding.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityElement.cs
- UIPropertyMetadata.cs
- ProjectionCamera.cs
- EventSchemaTraceListener.cs
- PassportAuthenticationEventArgs.cs
- AutoSizeComboBox.cs
- Localizer.cs
- MatchAttribute.cs
- EnterpriseServicesHelper.cs
- streamingZipPartStream.cs
- JsonReaderWriterFactory.cs
- oledbconnectionstring.cs
- PathSegment.cs
- NetworkInformationException.cs
- HitTestParameters3D.cs
- MemberDescriptor.cs
- XpsImage.cs
- ModuleBuilder.cs
- DesignTimeParseData.cs
- TargetConverter.cs
- XmlSecureResolver.cs
- CellParaClient.cs
- ProfileGroupSettings.cs
- XPathNodeList.cs
- ProxyDataContractResolver.cs
- NamespaceList.cs
- InputMethodStateTypeInfo.cs
- TreeBuilder.cs
- DataRecordInternal.cs
- DataStreams.cs
- XmlEncApr2001.cs
- StringTraceRecord.cs
- Point3D.cs
- C14NUtil.cs
- ButtonField.cs
- ReflectionHelper.cs
- ToolTipAutomationPeer.cs
- httpstaticobjectscollection.cs
- CaseCqlBlock.cs
- ListBox.cs
- ProcessModule.cs
- XmlSchemaValidator.cs
- TextBoxLine.cs
- ClusterRegistryConfigurationProvider.cs
- ActivityExecutor.cs
- Button.cs
- MatrixCamera.cs
- StylusEventArgs.cs
- HtmlLink.cs
- CrossAppDomainChannel.cs
- NewItemsContextMenuStrip.cs
- ResourceDictionary.cs
- SessionStateModule.cs
- GroupBox.cs
- RefreshPropertiesAttribute.cs
- WSHttpBindingBase.cs
- ContentElementAutomationPeer.cs
- ListChangedEventArgs.cs
- TypeConverterHelper.cs
- XmlCharacterData.cs
- JsonWriter.cs
- LogEntryDeserializer.cs
- DependencyObjectType.cs
- ClientSponsor.cs
- Ref.cs
- AlternateViewCollection.cs
- ProgressBar.cs
- StringAnimationBase.cs
- NoneExcludedImageIndexConverter.cs
- DateTimeFormat.cs
- DbConvert.cs
- StorageEntityContainerMapping.cs
- Size3D.cs
- ApplicationId.cs
- SecurityKeyUsage.cs
- PersonalizablePropertyEntry.cs
- HideDisabledControlAdapter.cs
- DesignSurfaceServiceContainer.cs
- TreeWalkHelper.cs
- ExpressionVisitor.cs
- ControlTemplate.cs
- __FastResourceComparer.cs
- IDispatchConstantAttribute.cs
- HttpRequestCacheValidator.cs
- SchemaConstraints.cs
- StringResourceManager.cs
- RsaSecurityToken.cs
- TableAdapterManagerNameHandler.cs
- ErrorProvider.cs
- TableLayoutPanelDesigner.cs
- CompareInfo.cs
- SafeMILHandle.cs
- WebPartUtil.cs
- InputLanguageEventArgs.cs
- SQLString.cs
- ECDsa.cs
- TableDetailsRow.cs
- DeferredReference.cs
- SettingsContext.cs
- oledbmetadatacollectionnames.cs