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
- EncodingFallbackAwareXmlTextWriter.cs
- SerializationStore.cs
- ButtonField.cs
- RequestDescription.cs
- WindowsUpDown.cs
- QueryConverter.cs
- ModifierKeysValueSerializer.cs
- AnnotationAuthorChangedEventArgs.cs
- MenuItem.cs
- Binding.cs
- RegexCompilationInfo.cs
- SqlDataSourceCache.cs
- PropertyEmitter.cs
- ChannelTokenTypeConverter.cs
- LocatorBase.cs
- TransactionManagerProxy.cs
- StaticContext.cs
- DataGridViewColumnCollection.cs
- MaterialGroup.cs
- _IPv4Address.cs
- CommonObjectSecurity.cs
- ElementHostAutomationPeer.cs
- DataGridViewLinkColumn.cs
- XPathScanner.cs
- BaseHashHelper.cs
- SqlBuilder.cs
- XmlSchemaAnnotation.cs
- BitSet.cs
- HandlerBase.cs
- ToolBar.cs
- CalendarDesigner.cs
- NTAccount.cs
- DesignerProperties.cs
- ValidationHelper.cs
- GuidelineCollection.cs
- NodeFunctions.cs
- UIPropertyMetadata.cs
- QuaternionValueSerializer.cs
- SortDescription.cs
- StreamGeometry.cs
- FontConverter.cs
- Tool.cs
- SecurityDescriptor.cs
- OleDbStruct.cs
- MemberInfoSerializationHolder.cs
- ValueQuery.cs
- FilterQuery.cs
- BlobPersonalizationState.cs
- NullableConverter.cs
- ProfilePropertyMetadata.cs
- shaperfactoryquerycachekey.cs
- Encoding.cs
- precedingsibling.cs
- WorkflowTransactionOptions.cs
- DesignerVerb.cs
- AppModelKnownContentFactory.cs
- ExtentCqlBlock.cs
- GroupItem.cs
- DataList.cs
- PresentationSource.cs
- StreamMarshaler.cs
- Model3D.cs
- SecurityUtils.cs
- DataGridViewHitTestInfo.cs
- BamlBinaryReader.cs
- RoutedEventValueSerializer.cs
- AnnotationResourceChangedEventArgs.cs
- Pair.cs
- Line.cs
- MembershipSection.cs
- CalendarButtonAutomationPeer.cs
- storepermissionattribute.cs
- HierarchicalDataSourceControl.cs
- UriTemplateMatchException.cs
- PathSegmentCollection.cs
- ToolStripDropDownClosingEventArgs.cs
- MenuAdapter.cs
- ArgumentValidation.cs
- MonitorWrapper.cs
- Vector3DConverter.cs
- ControlDesignerState.cs
- Operator.cs
- CodeIdentifiers.cs
- UntypedNullExpression.cs
- WebPart.cs
- Selection.cs
- ToolStripCollectionEditor.cs
- Environment.cs
- Config.cs
- PeerInvitationResponse.cs
- OleDbParameter.cs
- DictionarySectionHandler.cs
- PtsHelper.cs
- EntitySetDataBindingList.cs
- ExitEventArgs.cs
- SQLDecimal.cs
- GetPolicyDetailsRequest.cs
- ObjectNotFoundException.cs
- CompiledQuery.cs
- HttpCachePolicy.cs