Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / IndexerHelper.cs / 1305376 / IndexerHelper.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Expressions { using System.Activities.Validation; using System.Collections.Generic; using System.Linq.Expressions; using System.Runtime; using System.Collections.ObjectModel; using System.Reflection; static class IndexerHelper { public static void OnGetArguments(Collection indices, OutArgument > result, CodeActivityMetadata metadata) { for (int i = 0; i < indices.Count; i++) { RuntimeArgument indexArgument = new RuntimeArgument("Index" + i, indices[i].ArgumentType, ArgumentDirection.In, true); metadata.Bind(indices[i], indexArgument); metadata.AddArgument(indexArgument); } RuntimeArgument resultArgument = new RuntimeArgument("Result", typeof(Location ), ArgumentDirection.Out); metadata.Bind(result, resultArgument); metadata.AddArgument(resultArgument); } public static void CacheMethod (Collection indices, ref MethodInfo getMethod, ref MethodInfo setMethod) { Type[] getTypes = new Type[indices.Count]; for (int i = 0; i < indices.Count; i++) { getTypes[i] = indices[i].ArgumentType; } getMethod = typeof(TOperand).GetMethod("get_Item", getTypes); if (getMethod != null && !getMethod.IsSpecialName) { getMethod = null; } Type[] setTypes = new Type[indices.Count + 1]; for (int i = 0; i < indices.Count; i++) { setTypes[i] = indices[i].ArgumentType; } setTypes[setTypes.Length - 1] = typeof(TItem); setMethod = typeof(TOperand).GetMethod("set_Item", setTypes); if (setMethod != null && !setMethod.IsSpecialName) { setMethod = null; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PermissionToken.cs
- WebContext.cs
- LineInfo.cs
- FixedStringLookup.cs
- CaseKeyBox.ViewModel.cs
- ModuleBuilder.cs
- System.Data.OracleClient_BID.cs
- Selection.cs
- TimeSpan.cs
- EntityDataSourceContextDisposingEventArgs.cs
- DataGridTableCollection.cs
- ReachPageContentCollectionSerializer.cs
- MSAAWinEventWrap.cs
- _SslStream.cs
- CultureSpecificCharacterBufferRange.cs
- QuestionEventArgs.cs
- SourceSwitch.cs
- ActiveXHelper.cs
- SerializationSectionGroup.cs
- Thickness.cs
- SqlException.cs
- XmlProcessingInstruction.cs
- Comparer.cs
- ChangeTracker.cs
- BrowserCapabilitiesFactory.cs
- RIPEMD160Managed.cs
- DataGridViewCellValidatingEventArgs.cs
- BindValidator.cs
- DebugHandleTracker.cs
- PolicyLevel.cs
- ElementNotAvailableException.cs
- DataGridViewColumn.cs
- RenamedEventArgs.cs
- DefaultValidator.cs
- TextElementAutomationPeer.cs
- TaskFactory.cs
- HashHelper.cs
- XmlTypeAttribute.cs
- TimeSpanMinutesConverter.cs
- BatchStream.cs
- ValidationException.cs
- MsmqInputSessionChannel.cs
- WCFBuildProvider.cs
- DesignBindingValueUIHandler.cs
- UnaryNode.cs
- DataGridCellAutomationPeer.cs
- HatchBrush.cs
- DragEventArgs.cs
- MatchingStyle.cs
- TreeViewImageKeyConverter.cs
- ConfigurationSectionGroupCollection.cs
- ToolboxItemAttribute.cs
- StorageEntityContainerMapping.cs
- XPathNavigator.cs
- SplayTreeNode.cs
- HttpRequestCacheValidator.cs
- CompilerGeneratedAttribute.cs
- CommonDialog.cs
- SQLSingle.cs
- WeakReadOnlyCollection.cs
- CompiledRegexRunner.cs
- ContainerUIElement3D.cs
- RepeatButton.cs
- PrinterSettings.cs
- Rotation3DAnimation.cs
- SurrogateSelector.cs
- CultureSpecificStringDictionary.cs
- SetIterators.cs
- followingquery.cs
- UDPClient.cs
- TextElementEnumerator.cs
- Rfc2898DeriveBytes.cs
- SqlRetyper.cs
- CodePageEncoding.cs
- MouseButtonEventArgs.cs
- ProvidePropertyAttribute.cs
- TrackingProfileManager.cs
- BindingSource.cs
- BrushMappingModeValidation.cs
- UserControl.cs
- Repeater.cs
- MultipartContentParser.cs
- DocumentCollection.cs
- QueueProcessor.cs
- MouseCaptureWithinProperty.cs
- XPathBinder.cs
- ColorDialog.cs
- WebPartUserCapability.cs
- StrokeDescriptor.cs
- DbConnectionPoolGroupProviderInfo.cs
- TraceProvider.cs
- MemoryFailPoint.cs
- DelegateTypeInfo.cs
- Invariant.cs
- ModuleBuilder.cs
- ContextMenuService.cs
- LayoutEditorPart.cs
- _LocalDataStore.cs
- PartitionResolver.cs
- remotingproxy.cs