Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / SetMemberBinder.cs / 1305376 / SetMemberBinder.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 member operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class SetMemberBinder : 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 SetMemberBinder(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 set member operation. /// /// The target of the dynamic set member operation. /// An array of arguments of the dynamic set member operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.RequiresNotNull(args, "args"); ContractUtils.Requires(args.Length == 1, "args"); var arg0 = args[0]; ContractUtils.RequiresNotNull(arg0, "args"); return target.BindSetMember(this, arg0); } // 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 member operation if the target dynamic object cannot bind. /// /// The target of the dynamic set member operation. /// The value to set to the member. ///The public DynamicMetaObject FallbackSetMember(DynamicMetaObject target, DynamicMetaObject value) { return FallbackSetMember(target, value, null); } ///representing the result of the binding. /// Performs the binding of the dynamic set member operation if the target dynamic object cannot bind. /// /// The target of the dynamic set member operation. /// The value to set to the member. /// The binding result to use if binding fails, or null. ///The public abstract DynamicMetaObject FallbackSetMember(DynamicMetaObject target, 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 member operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class SetMemberBinder : 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 SetMemberBinder(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 set member operation. /// /// The target of the dynamic set member operation. /// An array of arguments of the dynamic set member operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.RequiresNotNull(args, "args"); ContractUtils.Requires(args.Length == 1, "args"); var arg0 = args[0]; ContractUtils.RequiresNotNull(arg0, "args"); return target.BindSetMember(this, arg0); } // 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 member operation if the target dynamic object cannot bind. /// /// The target of the dynamic set member operation. /// The value to set to the member. ///The public DynamicMetaObject FallbackSetMember(DynamicMetaObject target, DynamicMetaObject value) { return FallbackSetMember(target, value, null); } ///representing the result of the binding. /// Performs the binding of the dynamic set member operation if the target dynamic object cannot bind. /// /// The target of the dynamic set member operation. /// The value to set to the member. /// The binding result to use if binding fails, or null. ///The public abstract DynamicMetaObject FallbackSetMember(DynamicMetaObject target, 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
- HtmlShim.cs
- SchemaCollectionPreprocessor.cs
- BinaryFormatter.cs
- PageAction.cs
- RuleProcessor.cs
- CodeIterationStatement.cs
- TimeSpanFormat.cs
- ExcCanonicalXml.cs
- TemplatePagerField.cs
- EntityDataSourceUtil.cs
- DataPagerFieldCommandEventArgs.cs
- DeviceSpecificChoice.cs
- WSSecurityPolicy.cs
- ImageField.cs
- UnsupportedPolicyOptionsException.cs
- NonNullItemCollection.cs
- WindowsFont.cs
- VirtualPath.cs
- CodeAccessSecurityEngine.cs
- ShadowGlyph.cs
- IOThreadScheduler.cs
- SortQueryOperator.cs
- ClientSession.cs
- FrameworkReadOnlyPropertyMetadata.cs
- CalendarButton.cs
- WebControlAdapter.cs
- XsltQilFactory.cs
- FlowLayout.cs
- SearchForVirtualItemEventArgs.cs
- CapabilitiesUse.cs
- Menu.cs
- GenericWebPart.cs
- XsltInput.cs
- SyndicationSerializer.cs
- Light.cs
- TreeView.cs
- followingquery.cs
- WeakReferenceList.cs
- MobileErrorInfo.cs
- WebServiceHandlerFactory.cs
- Renderer.cs
- RuntimeVariableList.cs
- HttpInputStream.cs
- PageParserFilter.cs
- TemplateColumn.cs
- ResourceExpressionBuilder.cs
- CLSCompliantAttribute.cs
- ReadOnlyCollectionBase.cs
- CompositeTypefaceMetrics.cs
- DbParameterHelper.cs
- DuplicateWaitObjectException.cs
- SchemaManager.cs
- ExcludeFromCodeCoverageAttribute.cs
- CounterCreationData.cs
- storepermissionattribute.cs
- ManipulationVelocities.cs
- securestring.cs
- HtmlAnchor.cs
- InvalidAsynchronousStateException.cs
- TextEffect.cs
- TemplateField.cs
- DockPattern.cs
- ContentIterators.cs
- ClusterSafeNativeMethods.cs
- ListBoxAutomationPeer.cs
- CodePrimitiveExpression.cs
- SemanticKeyElement.cs
- TemplateControl.cs
- CachedBitmap.cs
- NativeConfigurationLoader.cs
- BoundConstants.cs
- BitmapMetadata.cs
- ScrollProviderWrapper.cs
- JsonServiceDocumentSerializer.cs
- Brush.cs
- SQLDouble.cs
- EntityReference.cs
- EastAsianLunisolarCalendar.cs
- Mappings.cs
- httpserverutility.cs
- InputBinder.cs
- GradientSpreadMethodValidation.cs
- SqlEnums.cs
- PartialArray.cs
- PointKeyFrameCollection.cs
- ServerValidateEventArgs.cs
- FileLevelControlBuilderAttribute.cs
- BamlBinaryReader.cs
- FilterEventArgs.cs
- ToolStripComboBox.cs
- EditorPartCollection.cs
- SqlTransaction.cs
- XsdBuilder.cs
- AttachmentCollection.cs
- TrackingMemoryStreamFactory.cs
- ToolBarOverflowPanel.cs
- DataGridViewCellValidatingEventArgs.cs
- TaskForm.cs
- DateBoldEvent.cs
- URLString.cs