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
- DoubleAnimationBase.cs
- MimeTextImporter.cs
- peernodeimplementation.cs
- DataGridViewComboBoxEditingControl.cs
- NativeBuffer.cs
- DirectionalLight.cs
- ITextView.cs
- OptionUsage.cs
- RNGCryptoServiceProvider.cs
- IsolatedStorageFilePermission.cs
- Rotation3DKeyFrameCollection.cs
- ComponentDispatcherThread.cs
- BehaviorEditorPart.cs
- Model3DGroup.cs
- Emitter.cs
- IODescriptionAttribute.cs
- NavigatorInput.cs
- HtmlEmptyTagControlBuilder.cs
- DataSourceCache.cs
- DBBindings.cs
- HideDisabledControlAdapter.cs
- CalloutQueueItem.cs
- SecurityElement.cs
- GifBitmapEncoder.cs
- StylesEditorDialog.cs
- BookmarkUndoUnit.cs
- AnimationClockResource.cs
- FileLogRecordEnumerator.cs
- InternalConfigSettingsFactory.cs
- ToolTip.cs
- mongolianshape.cs
- SchemaComplexType.cs
- ListView.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- LineBreak.cs
- StrongName.cs
- BoundPropertyEntry.cs
- SpellerStatusTable.cs
- KnownBoxes.cs
- WebPartHelpVerb.cs
- ExpandedWrapper.cs
- TypeConverterAttribute.cs
- MergeEnumerator.cs
- XmlCharCheckingReader.cs
- ColumnMapVisitor.cs
- ProgressChangedEventArgs.cs
- SerializationFieldInfo.cs
- LayoutDump.cs
- DocumentViewerAutomationPeer.cs
- QilReference.cs
- SystemWebSectionGroup.cs
- FramingDecoders.cs
- ConfigurationValidatorBase.cs
- recordstate.cs
- MappingMetadataHelper.cs
- RealProxy.cs
- JoinGraph.cs
- ColorAnimationUsingKeyFrames.cs
- Shape.cs
- KeyboardNavigation.cs
- WeakReferenceList.cs
- PageCache.cs
- DesignBindingPropertyDescriptor.cs
- DefaultDiscoveryService.cs
- DataGridTable.cs
- SortFieldComparer.cs
- TextHintingModeValidation.cs
- XmlTextEncoder.cs
- EmptyTextWriter.cs
- DES.cs
- SqlUtils.cs
- SecurityRuntime.cs
- StylusLogic.cs
- WindowsRegion.cs
- CodeTypeReference.cs
- DrawingAttributeSerializer.cs
- ValidatingReaderNodeData.cs
- DataTableMapping.cs
- PeerHopCountAttribute.cs
- ConsumerConnectionPointCollection.cs
- streamingZipPartStream.cs
- AutomationPatternInfo.cs
- ChangeDirector.cs
- EdmProperty.cs
- GeneralTransform2DTo3DTo2D.cs
- Style.cs
- HighlightVisual.cs
- TrackingProfileCache.cs
- DbSetClause.cs
- GeneralTransform3DTo2DTo3D.cs
- ProtocolElementCollection.cs
- ParameterReplacerVisitor.cs
- HMACSHA512.cs
- SafeReversePInvokeHandle.cs
- elementinformation.cs
- DrawListViewSubItemEventArgs.cs
- DataObjectPastingEventArgs.cs
- DataBoundControlAdapter.cs
- MulticastOption.cs
- AspProxy.cs