Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / LocalService / DataExchangeServiceBinder.cs / 1305376 / DataExchangeServiceBinder.cs
using System; using System.Diagnostics; using System.Collections; using System.Collections.Generic; using System.Text; using System.Reflection; using System.Runtime.Serialization; using System.Runtime.Remoting; using System.Runtime.Remoting.Messaging; using System.Runtime.Remoting.Proxies; using System.Workflow.ComponentModel; using System.Workflow.Runtime; using System.Workflow.Runtime.Hosting; using System.Security.Permissions; using System.Globalization; namespace System.Workflow.Activities { internal sealed class ExternalDataExchangeBinder : Binder { Binder defltBinder; internal ExternalDataExchangeBinder() { defltBinder = Type.DefaultBinder; } public override MethodBase BindToMethod(BindingFlags bindingAttr, MethodBase[] match, ref object[] args, ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state) { Object[] argsCopy = new Object[args.Length]; args.CopyTo(argsCopy, 0); state = null; try { return defltBinder.BindToMethod(bindingAttr, match, ref args, modifiers, culture, names, out state); } catch (MissingMethodException) //5% case where when passed null for params. { if (match != null && match.Length != 0) { for (int i = 0; i < match.Length; ++i) { ParameterInfo[] methodParams = match[i].GetParameters(); if (methodParams.Length == argsCopy.Length) { for (int j = 0; j < methodParams.Length; ++j) { if (!methodParams[j].ParameterType.IsInstanceOfType(argsCopy[j])) { if (!(methodParams[j].ParameterType.IsArray && argsCopy[j] == null)) break; } if (j + 1 == methodParams.Length) return match[i]; } } } } } return null; } public override FieldInfo BindToField( BindingFlags bindingAttr, FieldInfo[] match, object value, CultureInfo culture) { return defltBinder.BindToField(bindingAttr, match, value, culture); } public override MethodBase SelectMethod(BindingFlags bindingAttr, MethodBase[] match, Type[] types, ParameterModifier[] modifiers) { return defltBinder.SelectMethod(bindingAttr, match, types, modifiers); } public override PropertyInfo SelectProperty(BindingFlags bindingAttr, PropertyInfo[] match, Type returnType, Type[] indexes, ParameterModifier[] modifiers ) { return defltBinder.SelectProperty(bindingAttr, match, returnType, indexes, modifiers); } public override object ChangeType(object value, Type type, CultureInfo culture ) { return defltBinder.ChangeType(value, type, culture); } public override void ReorderArgumentArray(ref object[] args, object state ) { defltBinder.ReorderArgumentArray(ref args, state); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FontFamily.cs
- RectangleConverter.cs
- UIElement3DAutomationPeer.cs
- WebRequestModuleElement.cs
- ArrangedElementCollection.cs
- SchemaCollectionPreprocessor.cs
- InstanceView.cs
- MinMaxParagraphWidth.cs
- MasterPageCodeDomTreeGenerator.cs
- ObjectContextServiceProvider.cs
- XomlCompilerError.cs
- ContextBase.cs
- CalendarTable.cs
- CommonEndpointBehaviorElement.cs
- ToolStripItemImageRenderEventArgs.cs
- HtmlInputCheckBox.cs
- linebase.cs
- DecoderFallbackWithFailureFlag.cs
- SqlCachedBuffer.cs
- HashHelper.cs
- CompilerError.cs
- RC2CryptoServiceProvider.cs
- PixelShader.cs
- Utility.cs
- WebZoneDesigner.cs
- WebPartRestoreVerb.cs
- CrossSiteScriptingValidation.cs
- PropertyGrid.cs
- ConsoleKeyInfo.cs
- TypedDataSourceCodeGenerator.cs
- ScriptComponentDescriptor.cs
- PropertyRecord.cs
- Control.cs
- DataServiceRequest.cs
- SymLanguageVendor.cs
- TextSpan.cs
- HttpModule.cs
- ParameterBuilder.cs
- StylusPointProperties.cs
- TemplatePagerField.cs
- ServiceContractListItem.cs
- PublisherMembershipCondition.cs
- CheckBoxStandardAdapter.cs
- ToolBarButtonClickEvent.cs
- InstanceKeyCompleteException.cs
- ProfilePropertyNameValidator.cs
- DataObjectPastingEventArgs.cs
- GridPattern.cs
- ObjectPropertyMapping.cs
- Stack.cs
- ScriptServiceAttribute.cs
- ErrorStyle.cs
- StyleCollectionEditor.cs
- TimerElapsedEvenArgs.cs
- TypeConverterHelper.cs
- SamlSecurityToken.cs
- SocketException.cs
- ListView.cs
- Rules.cs
- KeyManager.cs
- TcpServerChannel.cs
- ThrowHelper.cs
- _DomainName.cs
- BitmapInitialize.cs
- OletxDependentTransaction.cs
- XamlValidatingReader.cs
- CustomExpressionEventArgs.cs
- ContentElementAutomationPeer.cs
- DbDataSourceEnumerator.cs
- ZipIORawDataFileBlock.cs
- SystemDiagnosticsSection.cs
- HyperLinkField.cs
- ServiceDescriptionContext.cs
- DataRowChangeEvent.cs
- DetailsViewPageEventArgs.cs
- XmlSchemas.cs
- RegexWriter.cs
- CqlErrorHelper.cs
- DataGridViewCellValueEventArgs.cs
- XmlSchemaSubstitutionGroup.cs
- KeySplineConverter.cs
- DocumentPageTextView.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- TiffBitmapEncoder.cs
- LinqDataSourceSelectEventArgs.cs
- AnimatedTypeHelpers.cs
- OdbcConnectionString.cs
- MaskInputRejectedEventArgs.cs
- OSFeature.cs
- TransformPattern.cs
- DesignerTransactionCloseEvent.cs
- ViewStateModeByIdAttribute.cs
- StyleCollection.cs
- Expression.cs
- ProviderBase.cs
- SchemaMapping.cs
- DataGridViewComboBoxCell.cs
- SolidBrush.cs
- XmlNamespaceManager.cs
- HttpStreamXmlDictionaryWriter.cs