Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / SetIndexBinder.cs / 1305376 / SetIndexBinder.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; namespace System.Dynamic { ////// Represents the dynamic set index operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class SetIndexBinder : DynamicMetaObjectBinder { private readonly CallInfo _callInfo; ////// Initializes a new instance of the /// The signature of the arguments at the call site. protected SetIndexBinder(CallInfo callInfo) { ContractUtils.RequiresNotNull(callInfo, "callInfo"); _callInfo = callInfo; } ///. /// /// The result type of the operation. /// public override sealed Type ReturnType { get { return typeof(object); } } ////// Gets the signature of the arguments at the call site. /// public CallInfo CallInfo { get { return _callInfo; } } ////// Performs the binding of the dynamic set index operation. /// /// The target of the dynamic set index operation. /// An array of arguments of the dynamic set index operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.RequiresNotNull(args, "args"); ContractUtils.Requires(args.Length >= 2, "args"); DynamicMetaObject value = args[args.Length - 1]; DynamicMetaObject[] indexes = args.RemoveLast(); ContractUtils.RequiresNotNull(value, "args"); ContractUtils.RequiresNotNullItems(indexes, "args"); return target.BindSetIndex(this, indexes, value); } // this is a standard DynamicMetaObjectBinder internal override sealed bool IsStandardBinder { get { return true; } } ///representing the result of the binding. /// Performs the binding of the dynamic set index operation if the target dynamic object cannot bind. /// /// The target of the dynamic set index operation. /// The arguments of the dynamic set index operation. /// The value to set to the collection. ///The public DynamicMetaObject FallbackSetIndex(DynamicMetaObject target, DynamicMetaObject[] indexes, DynamicMetaObject value) { return FallbackSetIndex(target, indexes, value, null); } ///representing the result of the binding. /// When overridden in the derived class, performs the binding of the dynamic set index operation if the target dynamic object cannot bind. /// /// The target of the dynamic set index operation. /// The arguments of the dynamic set index operation. /// The value to set to the collection. /// The binding result to use if binding fails, or null. ///The public abstract DynamicMetaObject FallbackSetIndex(DynamicMetaObject target, DynamicMetaObject[] indexes, DynamicMetaObject value, DynamicMetaObject errorSuggestion); } } // 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
- MDIWindowDialog.cs
- Attributes.cs
- DBBindings.cs
- BCryptSafeHandles.cs
- GZipDecoder.cs
- SecurityManager.cs
- DefaultValidator.cs
- DataGridPagerStyle.cs
- RIPEMD160.cs
- CompositeControl.cs
- EndpointAddressProcessor.cs
- SqlConnectionStringBuilder.cs
- ColorEditor.cs
- MimeBasePart.cs
- WizardForm.cs
- StylusEditingBehavior.cs
- DefaultTraceListener.cs
- SaveFileDialog.cs
- SqlNotificationEventArgs.cs
- HighContrastHelper.cs
- Transactions.cs
- MobilePage.cs
- CutCopyPasteHelper.cs
- XPathSelectionIterator.cs
- AbstractSvcMapFileLoader.cs
- DefaultSection.cs
- DATA_BLOB.cs
- BindingManagerDataErrorEventArgs.cs
- SqlPersonalizationProvider.cs
- Imaging.cs
- RuleInfoComparer.cs
- XsdBuilder.cs
- RenderingEventArgs.cs
- FixedHyperLink.cs
- WebPartConnectionsCancelEventArgs.cs
- EncoderBestFitFallback.cs
- ComplexBindingPropertiesAttribute.cs
- StringPropertyBuilder.cs
- SelectionItemPatternIdentifiers.cs
- CalendarModeChangedEventArgs.cs
- SmtpNetworkElement.cs
- RuntimeHandles.cs
- Block.cs
- SvcMapFileSerializer.cs
- CookieParameter.cs
- DatasetMethodGenerator.cs
- ContractNamespaceAttribute.cs
- TextTreeFixupNode.cs
- Journaling.cs
- ToolStripPanelRenderEventArgs.cs
- AppSettingsSection.cs
- OperationContextScope.cs
- Panel.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DataGridViewRowsRemovedEventArgs.cs
- ListCollectionView.cs
- Brush.cs
- HtmlEncodedRawTextWriter.cs
- VisualStyleElement.cs
- ContentElementAutomationPeer.cs
- XmlElementList.cs
- BitmapEffectState.cs
- ReadWriteObjectLock.cs
- EncoderBestFitFallback.cs
- StaticTextPointer.cs
- SynchronizedInputHelper.cs
- StreamGeometryContext.cs
- XmlNamespaceMapping.cs
- FormViewModeEventArgs.cs
- ObsoleteAttribute.cs
- DesignerActionUIStateChangeEventArgs.cs
- Normalization.cs
- InputScopeAttribute.cs
- DesignTimeValidationFeature.cs
- BufferedStream2.cs
- TypographyProperties.cs
- FixedPageAutomationPeer.cs
- BatchParser.cs
- UserControlCodeDomTreeGenerator.cs
- SqlCacheDependencyDatabase.cs
- TextBounds.cs
- PositiveTimeSpanValidatorAttribute.cs
- PropertyBuilder.cs
- ExtendedProperty.cs
- StrokeNodeOperations2.cs
- DesignerVerbToolStripMenuItem.cs
- CodeComment.cs
- SoapProcessingBehavior.cs
- ControlEvent.cs
- SettingsAttributeDictionary.cs
- TaskFormBase.cs
- SortDescriptionCollection.cs
- Gdiplus.cs
- UInt32Storage.cs
- EmptyElement.cs
- CorrelationToken.cs
- NativeObjectSecurity.cs
- PatternMatcher.cs
- XmlObjectSerializerReadContext.cs
- ProtocolsConfigurationHandler.cs