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
- OrthographicCamera.cs
- Utils.cs
- InvalidCastException.cs
- ConnectivityStatus.cs
- StrokeCollectionDefaultValueFactory.cs
- TextTreeExtractElementUndoUnit.cs
- DispatcherProcessingDisabled.cs
- ChannelParameterCollection.cs
- RemotingConfigParser.cs
- UshortList2.cs
- Activator.cs
- CodeCompileUnit.cs
- ApplicationContext.cs
- MarkupExtensionReturnTypeAttribute.cs
- RuntimeConfig.cs
- ListBindableAttribute.cs
- OpenFileDialog.cs
- SinglePageViewer.cs
- Tag.cs
- OpacityConverter.cs
- DbgCompiler.cs
- _BasicClient.cs
- ArithmeticException.cs
- SoapElementAttribute.cs
- BaseParagraph.cs
- BoolExpression.cs
- GiveFeedbackEventArgs.cs
- HtmlTitle.cs
- UIElement.cs
- Component.cs
- SingleConverter.cs
- BuiltInExpr.cs
- BStrWrapper.cs
- EventsTab.cs
- HttpHandlerAction.cs
- jithelpers.cs
- SerializationBinder.cs
- InstanceCreationEditor.cs
- DataRow.cs
- ThicknessConverter.cs
- DataControlPagerLinkButton.cs
- CorrelationManager.cs
- IItemProperties.cs
- GenericWebPart.cs
- Parallel.cs
- DesignTimeTemplateParser.cs
- ListViewInsertEventArgs.cs
- sqlpipe.cs
- _NegoState.cs
- WindowsImpersonationContext.cs
- DataBindingHandlerAttribute.cs
- PriorityBinding.cs
- SchemeSettingElementCollection.cs
- Int64AnimationBase.cs
- DataGridViewCellCancelEventArgs.cs
- CompilerInfo.cs
- VScrollBar.cs
- __ComObject.cs
- EnumerableRowCollection.cs
- FtpRequestCacheValidator.cs
- XmlElementCollection.cs
- ProfileModule.cs
- RenderData.cs
- AsyncStreamReader.cs
- FunctionDefinition.cs
- InvokePatternIdentifiers.cs
- TreeBuilderBamlTranslator.cs
- ConnectionsZone.cs
- TextCharacters.cs
- SafeEventLogReadHandle.cs
- NamespaceMapping.cs
- ServiceModelActivity.cs
- DesignerToolboxInfo.cs
- XsdCachingReader.cs
- SimpleHandlerFactory.cs
- CLSCompliantAttribute.cs
- Message.cs
- MobileControlsSectionHelper.cs
- Matrix.cs
- ExitEventArgs.cs
- TextServicesDisplayAttributePropertyRanges.cs
- RecognizedWordUnit.cs
- sqlser.cs
- SqlBulkCopy.cs
- LingerOption.cs
- TemplateControlParser.cs
- ResourceDescriptionAttribute.cs
- EnvelopedPkcs7.cs
- AnnotationHighlightLayer.cs
- TypeTypeConverter.cs
- cookiecontainer.cs
- SecurityPolicySection.cs
- ContentValidator.cs
- TableAutomationPeer.cs
- TagPrefixCollection.cs
- TemplateField.cs
- XamlClipboardData.cs
- StateDesigner.TransitionInfo.cs
- StaticExtension.cs
- XmlSerializer.cs