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
- RequiredAttributeAttribute.cs
- AutomationFocusChangedEventArgs.cs
- SyndicationDeserializer.cs
- CommandManager.cs
- Psha1DerivedKeyGenerator.cs
- XPathQilFactory.cs
- Visitors.cs
- ZeroOpNode.cs
- LabelDesigner.cs
- LingerOption.cs
- HtmlInputCheckBox.cs
- ProxySimple.cs
- FirstQueryOperator.cs
- DesignerRegionMouseEventArgs.cs
- PromptStyle.cs
- ParallelTimeline.cs
- ResourcePermissionBase.cs
- DocumentViewerAutomationPeer.cs
- MachineKeySection.cs
- WizardForm.cs
- String.cs
- WebPartMenu.cs
- LinqToSqlWrapper.cs
- _BufferOffsetSize.cs
- UserValidatedEventArgs.cs
- Publisher.cs
- TransformedBitmap.cs
- MethodResolver.cs
- TextEffectResolver.cs
- MetadataException.cs
- AsymmetricKeyExchangeDeformatter.cs
- basevalidator.cs
- GridEntryCollection.cs
- FileRecordSequenceHelper.cs
- DataGridViewCellPaintingEventArgs.cs
- SizeAnimationClockResource.cs
- ExpressionVisitorHelpers.cs
- ComboBoxItem.cs
- ResourceDescriptionAttribute.cs
- BooleanProjectedSlot.cs
- ButtonField.cs
- HostExecutionContextManager.cs
- RightsManagementInformation.cs
- RegexRunnerFactory.cs
- HttpApplication.cs
- AxHost.cs
- arabicshape.cs
- SafeNativeMethods.cs
- SqlDelegatedTransaction.cs
- BypassElement.cs
- TimeSpanMinutesConverter.cs
- SqlCacheDependencyDatabaseCollection.cs
- ReadContentAsBinaryHelper.cs
- MetaChildrenColumn.cs
- DesignerWidgets.cs
- ToolStripItemCollection.cs
- AppDomainFactory.cs
- PKCS1MaskGenerationMethod.cs
- SystemWebSectionGroup.cs
- WebZone.cs
- UInt16Converter.cs
- UserPreferenceChangingEventArgs.cs
- SyncOperationState.cs
- DataSourceUtil.cs
- WebServiceTypeData.cs
- TypefaceMap.cs
- AttributeCollection.cs
- SecurityUtils.cs
- EmbossBitmapEffect.cs
- LoginCancelEventArgs.cs
- InvalidBodyAccessException.cs
- DoubleCollection.cs
- SqlCommandBuilder.cs
- WebPartAuthorizationEventArgs.cs
- _ConnectOverlappedAsyncResult.cs
- MailDefinition.cs
- ThrowHelper.cs
- TextWriterTraceListener.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SplineKeyFrames.cs
- SystemIPAddressInformation.cs
- DiagnosticStrings.cs
- DataGridViewLinkColumn.cs
- ExtenderProvidedPropertyAttribute.cs
- CryptographicAttribute.cs
- RepeatBehaviorConverter.cs
- Expression.cs
- WindowsRebar.cs
- PageParser.cs
- Int32Rect.cs
- OutKeywords.cs
- DataGridClipboardCellContent.cs
- ExpandableObjectConverter.cs
- WindowVisualStateTracker.cs
- Trace.cs
- ButtonChrome.cs
- ParameterCollection.cs
- LinqDataSourceContextEventArgs.cs
- NetworkCredential.cs
- RegularExpressionValidator.cs