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
- FillBehavior.cs
- COM2IProvidePropertyBuilderHandler.cs
- HwndHostAutomationPeer.cs
- SQLMembershipProvider.cs
- DataStorage.cs
- RichTextBoxConstants.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- TextOptionsInternal.cs
- UIElement3D.cs
- ActivityDesigner.cs
- QilInvokeLateBound.cs
- AccessDataSourceView.cs
- IPGlobalProperties.cs
- SubMenuStyleCollectionEditor.cs
- ActivityExecutorSurrogate.cs
- CompensatableSequenceActivity.cs
- CodeDirectoryCompiler.cs
- FontResourceCache.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- RelatedView.cs
- FolderNameEditor.cs
- GridItemPattern.cs
- SafeRegistryKey.cs
- HtmlElement.cs
- CollectionChangedEventManager.cs
- LogRecordSequence.cs
- DataPager.cs
- CheckBoxAutomationPeer.cs
- UriTemplateDispatchFormatter.cs
- LinkUtilities.cs
- XomlDesignerLoader.cs
- DESCryptoServiceProvider.cs
- ExecutionEngineException.cs
- IDictionary.cs
- HttpChannelBindingToken.cs
- ObjectStorage.cs
- SourceFileBuildProvider.cs
- HttpCapabilitiesBase.cs
- CustomExpressionEventArgs.cs
- SqlDataSource.cs
- FormView.cs
- GetTokenRequest.cs
- BorderGapMaskConverter.cs
- FreezableDefaultValueFactory.cs
- InfoCardBinaryReader.cs
- JournalNavigationScope.cs
- Stream.cs
- NativeMsmqMessage.cs
- TextRange.cs
- RootBrowserWindow.cs
- BitmapEffectGroup.cs
- PermissionSetTriple.cs
- ConnectionConsumerAttribute.cs
- WindowsListViewGroupSubsetLink.cs
- InputBinder.cs
- FragmentQuery.cs
- SqlWebEventProvider.cs
- CancelEventArgs.cs
- WebPartsPersonalizationAuthorization.cs
- Point4D.cs
- CngProperty.cs
- DebugHandleTracker.cs
- CustomCategoryAttribute.cs
- RuleSetReference.cs
- HtmlInputControl.cs
- FloatUtil.cs
- AttributeEmitter.cs
- SignatureHelper.cs
- SqlProviderServices.cs
- HandlerBase.cs
- DeflateStream.cs
- SqlDependencyListener.cs
- EntitySet.cs
- IconHelper.cs
- ProfileInfo.cs
- DataSetViewSchema.cs
- Vector.cs
- ColorBlend.cs
- _TimerThread.cs
- ApplicationInterop.cs
- QuaternionRotation3D.cs
- AssociationSetMetadata.cs
- DocComment.cs
- AccessDataSource.cs
- TdsParserSessionPool.cs
- TextTrailingWordEllipsis.cs
- ControlUtil.cs
- FamilyMapCollection.cs
- DBDataPermissionAttribute.cs
- DbInsertCommandTree.cs
- WeakEventManager.cs
- securitycriticaldataformultiplegetandset.cs
- PersonalizationStateQuery.cs
- XmlUnspecifiedAttribute.cs
- WebConfigurationFileMap.cs
- PreviewPrintController.cs
- ImplicitInputBrush.cs
- XmlSchemaDocumentation.cs
- ClientCultureInfo.cs
- VerificationAttribute.cs