Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / GetMemberBinder.cs / 1305376 / GetMemberBinder.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 get member operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class GetMemberBinder : DynamicMetaObjectBinder { private readonly string _name; private readonly bool _ignoreCase; ////// Initializes a new instance of the /// The name of the member to get. /// true if the name should be matched ignoring case; false otherwise. protected GetMemberBinder(string name, bool ignoreCase) { ContractUtils.RequiresNotNull(name, "name"); _name = name; _ignoreCase = ignoreCase; } ///. /// /// The result type of the operation. /// public override sealed Type ReturnType { get { return typeof(object); } } ////// Gets the name of the member to get. /// public string Name { get { return _name; } } ////// Gets the value indicating if the string comparison should ignore the case of the member name. /// public bool IgnoreCase { get { return _ignoreCase; } } ////// Performs the binding of the dynamic get member operation if the target dynamic object cannot bind. /// /// The target of the dynamic get member operation. ///The public DynamicMetaObject FallbackGetMember(DynamicMetaObject target) { return FallbackGetMember(target, null); } ///representing the result of the binding. /// When overridden in the derived class, performs the binding of the dynamic get member operation if the target dynamic object cannot bind. /// /// The target of the dynamic get member operation. /// The binding result to use if binding fails, or null. ///The public abstract DynamicMetaObject FallbackGetMember(DynamicMetaObject target, DynamicMetaObject errorSuggestion); ///representing the result of the binding. /// Performs the binding of the dynamic get member operation. /// /// The target of the dynamic get member operation. /// An array of arguments of the dynamic get member operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, params DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.Requires(args == null || args.Length == 0, "args"); return target.BindGetMember(this); } // this is a standard DynamicMetaObjectBinder internal override sealed bool IsStandardBinder { get { return true; } } } } // 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 get member operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class GetMemberBinder : DynamicMetaObjectBinder { private readonly string _name; private readonly bool _ignoreCase; ////// Initializes a new instance of the /// The name of the member to get. /// true if the name should be matched ignoring case; false otherwise. protected GetMemberBinder(string name, bool ignoreCase) { ContractUtils.RequiresNotNull(name, "name"); _name = name; _ignoreCase = ignoreCase; } ///. /// /// The result type of the operation. /// public override sealed Type ReturnType { get { return typeof(object); } } ////// Gets the name of the member to get. /// public string Name { get { return _name; } } ////// Gets the value indicating if the string comparison should ignore the case of the member name. /// public bool IgnoreCase { get { return _ignoreCase; } } ////// Performs the binding of the dynamic get member operation if the target dynamic object cannot bind. /// /// The target of the dynamic get member operation. ///The public DynamicMetaObject FallbackGetMember(DynamicMetaObject target) { return FallbackGetMember(target, null); } ///representing the result of the binding. /// When overridden in the derived class, performs the binding of the dynamic get member operation if the target dynamic object cannot bind. /// /// The target of the dynamic get member operation. /// The binding result to use if binding fails, or null. ///The public abstract DynamicMetaObject FallbackGetMember(DynamicMetaObject target, DynamicMetaObject errorSuggestion); ///representing the result of the binding. /// Performs the binding of the dynamic get member operation. /// /// The target of the dynamic get member operation. /// An array of arguments of the dynamic get member operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, params DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.Requires(args == null || args.Length == 0, "args"); return target.BindGetMember(this); } // this is a standard DynamicMetaObjectBinder internal override sealed bool IsStandardBinder { get { return true; } } } } // 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
- MouseGestureValueSerializer.cs
- RegexMatch.cs
- Types.cs
- BindingGroup.cs
- GridViewRowCollection.cs
- EditorPartChrome.cs
- QuaternionConverter.cs
- ColorTransformHelper.cs
- SqlServices.cs
- ToolStripArrowRenderEventArgs.cs
- RequestCacheManager.cs
- InputQueue.cs
- SmiGettersStream.cs
- figurelengthconverter.cs
- ZipIOExtraField.cs
- ChannelAcceptor.cs
- DateTimeFormat.cs
- PerformanceCounterCategory.cs
- CustomLineCap.cs
- TypeDescriptionProvider.cs
- RSAOAEPKeyExchangeFormatter.cs
- DataTableTypeConverter.cs
- CaseInsensitiveOrdinalStringComparer.cs
- GlyphElement.cs
- PropertyChangingEventArgs.cs
- DataGridViewComboBoxColumn.cs
- Int16Animation.cs
- RectConverter.cs
- DBConcurrencyException.cs
- Literal.cs
- RegistrySecurity.cs
- followingsibling.cs
- CheckBoxList.cs
- LocatorBase.cs
- XmlSecureResolver.cs
- TextBounds.cs
- FormViewDeletedEventArgs.cs
- DesignDataSource.cs
- DbMetaDataColumnNames.cs
- PreservationFileReader.cs
- WinFormsComponentEditor.cs
- SrgsNameValueTag.cs
- SystemColors.cs
- XmlDigitalSignatureProcessor.cs
- AssociationEndMember.cs
- ProfileModule.cs
- DataGridViewCellConverter.cs
- EngineSite.cs
- CodeTypeParameter.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- FontInfo.cs
- SolidColorBrush.cs
- BehaviorDragDropEventArgs.cs
- HttpCookieCollection.cs
- WindowsSpinner.cs
- HostSecurityManager.cs
- Update.cs
- DbProviderConfigurationHandler.cs
- TableLayoutSettingsTypeConverter.cs
- MsmqEncryptionAlgorithm.cs
- SelectorItemAutomationPeer.cs
- UnaryQueryOperator.cs
- IpcChannelHelper.cs
- StreamAsIStream.cs
- ITextView.cs
- PaginationProgressEventArgs.cs
- ToolStripDropDownButton.cs
- XmlSchemaValidator.cs
- CodeGroup.cs
- CallTemplateAction.cs
- XmlCustomFormatter.cs
- HostDesigntimeLicenseContext.cs
- Vars.cs
- ScriptDescriptor.cs
- MessageBox.cs
- ObjectItemNoOpAssemblyLoader.cs
- BuildProviderUtils.cs
- Resources.Designer.cs
- DesignerVerb.cs
- Style.cs
- Animatable.cs
- PropertyGridView.cs
- CodeStatement.cs
- BinarySerializer.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- CreateUserErrorEventArgs.cs
- RawUIStateInputReport.cs
- InfoCardTrace.cs
- RenderTargetBitmap.cs
- KeyConverter.cs
- DbProviderFactory.cs
- EventListenerClientSide.cs
- RoutedEvent.cs
- SafePEFileHandle.cs
- OdbcError.cs
- Int32Storage.cs
- Int64.cs
- QilBinary.cs
- NullRuntimeConfig.cs
- DecimalAnimationUsingKeyFrames.cs