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
- MachineSettingsSection.cs
- WebBrowserSiteBase.cs
- MulticastNotSupportedException.cs
- LateBoundChannelParameterCollection.cs
- MembershipValidatePasswordEventArgs.cs
- EventLogStatus.cs
- OutputCacheProfile.cs
- BitmapMetadataEnumerator.cs
- BinaryObjectReader.cs
- Wildcard.cs
- ProxyWebPartManagerDesigner.cs
- ProviderIncompatibleException.cs
- PolicyVersionConverter.cs
- DataGridViewCellCollection.cs
- ParameterBinding.cs
- EditCommandColumn.cs
- CallbackDebugElement.cs
- HandlerBase.cs
- DesignerAttribute.cs
- RepeaterItemEventArgs.cs
- Array.cs
- DiscoveryClientChannelFactory.cs
- SQLDoubleStorage.cs
- CompilationLock.cs
- ImageListStreamer.cs
- ConnectorMovedEventArgs.cs
- SimpleWorkerRequest.cs
- OLEDB_Enum.cs
- InlinedLocationReference.cs
- FreezableCollection.cs
- SchemaElementDecl.cs
- RolePrincipal.cs
- XmlWriter.cs
- DbReferenceCollection.cs
- DesignerVerbCollection.cs
- RawUIStateInputReport.cs
- HandlerMappingMemo.cs
- GeneralTransform.cs
- RemoteTokenFactory.cs
- CmsUtils.cs
- ExtenderProvidedPropertyAttribute.cs
- RequestCacheManager.cs
- XmlILStorageConverter.cs
- SystemKeyConverter.cs
- ScrollEventArgs.cs
- CalculatedColumn.cs
- BookmarkEventArgs.cs
- ClockController.cs
- TableMethodGenerator.cs
- Quaternion.cs
- ProfileProvider.cs
- SchemaObjectWriter.cs
- SHA384.cs
- EdmItemCollection.cs
- ArraySubsetEnumerator.cs
- ProfileManager.cs
- WasAdminWrapper.cs
- ConfigUtil.cs
- BaseDataListActionList.cs
- CompilerHelpers.cs
- QualificationDataAttribute.cs
- GridViewUpdatedEventArgs.cs
- RadioButton.cs
- SmtpLoginAuthenticationModule.cs
- ExpressionCopier.cs
- ObjectViewQueryResultData.cs
- TrailingSpaceComparer.cs
- WebPartManager.cs
- GeneralTransform.cs
- EventDescriptorCollection.cs
- XmlConvert.cs
- BitmapCodecInfo.cs
- MetaModel.cs
- WinEventTracker.cs
- DesignBinding.cs
- ECDiffieHellmanCng.cs
- TextParagraphProperties.cs
- SqlClientMetaDataCollectionNames.cs
- TrustLevelCollection.cs
- CommandLibraryHelper.cs
- OracleInternalConnection.cs
- EllipseGeometry.cs
- Rule.cs
- UpDownEvent.cs
- SQLMoneyStorage.cs
- WebPartHelpVerb.cs
- Comparer.cs
- DefaultPrintController.cs
- ReliableSessionBindingElementImporter.cs
- SerializationInfoEnumerator.cs
- XpsFilter.cs
- Profiler.cs
- PEFileEvidenceFactory.cs
- DBParameter.cs
- TextEvent.cs
- DataGridViewRowCancelEventArgs.cs
- ColorDialog.cs
- EUCJPEncoding.cs
- TdsParameterSetter.cs
- XPathPatternParser.cs