Code:
/ 4.0 / 4.0 / 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. /* **************************************************************************** * * 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 { ///representing the result of the binding. /// 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
- DataColumnMapping.cs
- WebPartsSection.cs
- ComponentSerializationService.cs
- BookmarkManager.cs
- BindingValueChangedEventArgs.cs
- XmlDocumentType.cs
- DesignerOptionService.cs
- EntitySetBaseCollection.cs
- OptimizedTemplateContent.cs
- UserControlAutomationPeer.cs
- RadialGradientBrush.cs
- XamlBuildTaskServices.cs
- SharedConnectionListener.cs
- DataGridViewColumnEventArgs.cs
- CharUnicodeInfo.cs
- Function.cs
- XsltArgumentList.cs
- StatusBarDrawItemEvent.cs
- DefaultTextStore.cs
- TextParagraphCache.cs
- DataBoundControlHelper.cs
- DbConnectionStringCommon.cs
- OrderedDictionary.cs
- FlowDocumentView.cs
- DataBinding.cs
- Rule.cs
- ButtonColumn.cs
- TransactionTable.cs
- StylusOverProperty.cs
- ReservationNotFoundException.cs
- NullReferenceException.cs
- IOThreadTimer.cs
- StreamReader.cs
- IconConverter.cs
- MissingMemberException.cs
- PEFileReader.cs
- CodeStatementCollection.cs
- Decorator.cs
- RequestQueryParser.cs
- MultiViewDesigner.cs
- NamespaceQuery.cs
- DesignerDataTable.cs
- QilGeneratorEnv.cs
- EntityException.cs
- UpdateRecord.cs
- WindowsGraphicsWrapper.cs
- HitTestWithPointDrawingContextWalker.cs
- GroupBoxRenderer.cs
- SafeSecurityHandles.cs
- HtmlShimManager.cs
- SelectionWordBreaker.cs
- FontSourceCollection.cs
- SqlTypeSystemProvider.cs
- ConfigXmlCDataSection.cs
- HMACSHA1.cs
- SvcMapFile.cs
- AudioLevelUpdatedEventArgs.cs
- Scanner.cs
- StringToken.cs
- String.cs
- QueryOptionExpression.cs
- ExpressionBuilder.cs
- ConnectionPointCookie.cs
- SqlConnectionHelper.cs
- SetterBase.cs
- XpsSerializationManagerAsync.cs
- WebConvert.cs
- PrinterSettings.cs
- ProtectedProviderSettings.cs
- InputDevice.cs
- StateRuntime.cs
- DateTimeValueSerializer.cs
- PrintDialogException.cs
- ContextMarshalException.cs
- ComplexObject.cs
- GroupStyle.cs
- QuestionEventArgs.cs
- LinearGradientBrush.cs
- Number.cs
- ExpressionHelper.cs
- WinFormsSecurity.cs
- TypedMessageConverter.cs
- GeneralTransform2DTo3D.cs
- HebrewNumber.cs
- BlockingCollection.cs
- Switch.cs
- Expression.cs
- ValidationManager.cs
- InstanceKeyNotReadyException.cs
- RemoteArgument.cs
- XmlSchemaComplexType.cs
- MatrixAnimationBase.cs
- AttachedAnnotationChangedEventArgs.cs
- NativeMethods.cs
- Vector3DAnimationUsingKeyFrames.cs
- SqlCacheDependencyDatabase.cs
- FileDataSourceCache.cs
- SoapSchemaImporter.cs
- LicenseException.cs
- ProcessHostConfigUtils.cs