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
- Attributes.cs
- DataGridViewCellPaintingEventArgs.cs
- SendActivityDesigner.cs
- Trace.cs
- SqlProfileProvider.cs
- ContainerUtilities.cs
- ActiveDocumentEvent.cs
- HyperLinkField.cs
- TemplatePropertyEntry.cs
- Common.cs
- TextServicesPropertyRanges.cs
- PublisherIdentityPermission.cs
- Sequence.cs
- MediaElementAutomationPeer.cs
- DbBuffer.cs
- Util.cs
- FormsAuthenticationCredentials.cs
- DecimalAverageAggregationOperator.cs
- VoiceChangeEventArgs.cs
- DbMetaDataColumnNames.cs
- TransformDescriptor.cs
- Icon.cs
- ViewGenerator.cs
- InvalidPipelineStoreException.cs
- TargetControlTypeAttribute.cs
- QilSortKey.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- TokenBasedSetEnumerator.cs
- BinHexEncoder.cs
- SkewTransform.cs
- MimeParameters.cs
- CellLabel.cs
- ExecutionEngineException.cs
- XamlWrappingReader.cs
- FieldBuilder.cs
- WindowsStatic.cs
- CommentAction.cs
- ComboBox.cs
- QuaternionKeyFrameCollection.cs
- XomlCompilerError.cs
- ContextBase.cs
- odbcmetadatacolumnnames.cs
- Size3D.cs
- ExtendedProperty.cs
- FileDialogPermission.cs
- SystemInfo.cs
- TypeConverterHelper.cs
- DataSysAttribute.cs
- PreProcessInputEventArgs.cs
- cache.cs
- PhysicalAddress.cs
- ProxyAttribute.cs
- TabOrder.cs
- EncoderFallback.cs
- AssemblyBuilder.cs
- xmlfixedPageInfo.cs
- ImageField.cs
- QilGenerator.cs
- AmbiguousMatchException.cs
- BulletedListDesigner.cs
- HMACSHA384.cs
- WindowsScroll.cs
- mediaclock.cs
- DocobjHost.cs
- MarkupCompilePass2.cs
- ClientApiGenerator.cs
- MetadataProperty.cs
- ExponentialEase.cs
- UseLicense.cs
- PrimitiveType.cs
- StagingAreaInputItem.cs
- QueryValue.cs
- TransformedBitmap.cs
- CqlLexer.cs
- ElementProxy.cs
- CqlParser.cs
- DataTableClearEvent.cs
- CommandLibraryHelper.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- DbConnectionPoolIdentity.cs
- ScaleTransform.cs
- ArraySortHelper.cs
- ScrollData.cs
- TypeToken.cs
- CheckBox.cs
- TextEndOfLine.cs
- HtmlUtf8RawTextWriter.cs
- DynamicAttribute.cs
- JoinGraph.cs
- Viewport2DVisual3D.cs
- ControlCachePolicy.cs
- LocalBuilder.cs
- CountdownEvent.cs
- PrintDialog.cs
- MobileControlsSectionHelper.cs
- TimeSpanFormat.cs
- DiscoveryReference.cs
- UserMapPath.cs
- ExtensibleSyndicationObject.cs
- PixelFormatConverter.cs