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
- XmlSortKey.cs
- CodeSubDirectoriesCollection.cs
- HtmlInputSubmit.cs
- ContainerUtilities.cs
- XamlDesignerSerializationManager.cs
- storepermissionattribute.cs
- ObjectTag.cs
- Floater.cs
- ToolStripStatusLabel.cs
- XappLauncher.cs
- NameScopePropertyAttribute.cs
- DtdParser.cs
- RequestDescription.cs
- EntityDataSourceMemberPath.cs
- HttpHandlerActionCollection.cs
- ProxyWebPart.cs
- OdbcConnectionPoolProviderInfo.cs
- ProviderCollection.cs
- DefaultEventAttribute.cs
- OdbcDataAdapter.cs
- WmlObjectListAdapter.cs
- Util.cs
- ItemsPanelTemplate.cs
- DiagnosticTrace.cs
- Emitter.cs
- unsafenativemethodsother.cs
- ExpressionBuilderContext.cs
- SafeMemoryMappedFileHandle.cs
- HttpFileCollection.cs
- SocketAddress.cs
- QuerySelectOp.cs
- MenuEventArgs.cs
- AutoGeneratedField.cs
- RootDesignerSerializerAttribute.cs
- TypeForwardedToAttribute.cs
- ColumnCollection.cs
- WebPartEditorApplyVerb.cs
- Crypto.cs
- ControllableStoryboardAction.cs
- EnumValidator.cs
- ComNativeDescriptor.cs
- RequestQueue.cs
- Wizard.cs
- ElementNotEnabledException.cs
- HttpRawResponse.cs
- ProcessHostServerConfig.cs
- SelectionWordBreaker.cs
- LinkArea.cs
- OleDbPropertySetGuid.cs
- HtmlInputSubmit.cs
- Scene3D.cs
- QilInvoke.cs
- ScaleTransform.cs
- _PooledStream.cs
- Or.cs
- DrawingAttributes.cs
- PagePropertiesChangingEventArgs.cs
- MailDefinition.cs
- XmlSchemaObject.cs
- PointLight.cs
- DetailsViewModeEventArgs.cs
- SafeEventLogReadHandle.cs
- DateTimeFormat.cs
- DiscoveryInnerClientManaged11.cs
- AbstractDataSvcMapFileLoader.cs
- XmlKeywords.cs
- DynamicControlParameter.cs
- RuntimeResourceSet.cs
- GenericWebPart.cs
- AdRotator.cs
- SplineQuaternionKeyFrame.cs
- AutomationPatternInfo.cs
- KeyGestureConverter.cs
- GridViewAutomationPeer.cs
- GenericsInstances.cs
- ListItem.cs
- ObjectDataSourceSelectingEventArgs.cs
- ToolStripMenuItem.cs
- TextDecorations.cs
- CodeComment.cs
- XmlWrappingReader.cs
- DefaultDiscoveryServiceExtension.cs
- UserInitiatedNavigationPermission.cs
- XmlDataSourceView.cs
- TypeContext.cs
- OverlappedAsyncResult.cs
- AssertValidation.cs
- FrugalList.cs
- SessionIDManager.cs
- AuthenticationModulesSection.cs
- BitVec.cs
- X509SecurityTokenProvider.cs
- WinInetCache.cs
- Accessible.cs
- FacetValues.cs
- DocumentReference.cs
- AlignmentXValidation.cs
- UIServiceHelper.cs
- Positioning.cs
- UInt16Storage.cs