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
- AttributeCollection.cs
- CacheRequest.cs
- AssemblyBuilderData.cs
- Signature.cs
- WebPartActionVerb.cs
- RoutedCommand.cs
- GridViewPageEventArgs.cs
- HyperLink.cs
- AttributeEmitter.cs
- DataBoundControl.cs
- FileChangesMonitor.cs
- ToolboxControl.cs
- SmtpCommands.cs
- Helpers.cs
- DataBindEngine.cs
- RegexNode.cs
- DesignTimeVisibleAttribute.cs
- HandleExceptionArgs.cs
- DeviceContexts.cs
- WindowVisualStateTracker.cs
- ResourceContainer.cs
- ResetableIterator.cs
- QuaternionValueSerializer.cs
- ReadOnlyMetadataCollection.cs
- TargetParameterCountException.cs
- CollectionChangedEventManager.cs
- MethodCallTranslator.cs
- DbConnectionClosed.cs
- OleDbConnectionFactory.cs
- DataPager.cs
- DataSet.cs
- XmlUtf8RawTextWriter.cs
- OleDbDataReader.cs
- SettingsAttributeDictionary.cs
- DefaultAuthorizationContext.cs
- IPipelineRuntime.cs
- HtmlWindow.cs
- MimePart.cs
- PolicyLevel.cs
- DrawListViewColumnHeaderEventArgs.cs
- validationstate.cs
- HtmlContainerControl.cs
- RegularExpressionValidator.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- XmlSchemaFacet.cs
- DataBoundControlHelper.cs
- StoryFragments.cs
- DataServiceRequestException.cs
- PopupEventArgs.cs
- ServiceInstanceProvider.cs
- ElapsedEventArgs.cs
- ExpressionLink.cs
- rsa.cs
- nulltextnavigator.cs
- Random.cs
- SymbolType.cs
- WebPartHelpVerb.cs
- MenuRendererStandards.cs
- ZoneIdentityPermission.cs
- RepeaterItemCollection.cs
- IgnoreFileBuildProvider.cs
- XMLDiffLoader.cs
- safesecurityhelperavalon.cs
- DataGridItem.cs
- FindCriteriaElement.cs
- PropertyCondition.cs
- DetailsViewPagerRow.cs
- DataGridViewComboBoxColumn.cs
- EmulateRecognizeCompletedEventArgs.cs
- TemplateComponentConnector.cs
- IncrementalCompileAnalyzer.cs
- VisualCollection.cs
- SqlServer2KCompatibilityAnnotation.cs
- AssemblyBuilderData.cs
- AutoResetEvent.cs
- DependencyPropertyKey.cs
- DBConnection.cs
- EndpointAddressElementBase.cs
- TimelineGroup.cs
- TripleDESCryptoServiceProvider.cs
- GridViewColumnHeader.cs
- TreeNodeStyleCollection.cs
- ToolStripMenuItem.cs
- EUCJPEncoding.cs
- StreamingContext.cs
- WeakRefEnumerator.cs
- SimpleExpression.cs
- ImageSource.cs
- ManagedWndProcTracker.cs
- Variant.cs
- InsufficientExecutionStackException.cs
- PointConverter.cs
- XslTransform.cs
- Signature.cs
- ConfigurationElementCollection.cs
- UTF7Encoding.cs
- RegistryPermission.cs
- UriTemplateVariableQueryValue.cs
- ThrowHelper.cs
- WebBrowser.cs