Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / ArrayItemReference.cs / 1305376 / ArrayItemReference.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Activities.Expressions
{
using System.Activities.Statements;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.Serialization;
public sealed class ArrayItemReference : CodeActivity>
{
public ArrayItemReference()
: base()
{
}
[RequiredArgument]
[DefaultValue(null)]
public InArgument Array
{
get;
set;
}
[RequiredArgument]
[DefaultValue(null)]
public InArgument Index
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
RuntimeArgument arrayArgument = new RuntimeArgument("Array", typeof(TItem[]), ArgumentDirection.In, true);
metadata.Bind(this.Array, arrayArgument);
RuntimeArgument indexArgument = new RuntimeArgument("Index", typeof(int), ArgumentDirection.In, true);
metadata.Bind(this.Index, indexArgument);
RuntimeArgument resultArgument = new RuntimeArgument("Result", typeof(Location), ArgumentDirection.Out);
metadata.Bind(this.Result, resultArgument);
metadata.SetArgumentsCollection(
new Collection
{
arrayArgument,
indexArgument,
resultArgument
});
}
protected override Location Execute(CodeActivityContext context)
{
TItem[] items = this.Array.Get(context);
if (items == null)
{
throw FxTrace.Exception.AsError(new InvalidOperationException(SR.MemberCannotBeNull("Array", this.GetType().Name, this.DisplayName)));
}
int itemIndex = this.Index.Get(context);
return new ArrayLocation(items, itemIndex);
}
[DataContract]
class ArrayLocation : Location
{
[DataMember]
TItem[] array;
[DataMember(EmitDefaultValue = false)]
int index;
public ArrayLocation(TItem[] array, int index)
: base()
{
this.array = array;
this.index = index;
}
public override TItem Value
{
get
{
return this.array[this.index];
}
set
{
this.array[this.index] = value;
}
}
}
}
}
// 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
- RequestCachePolicy.cs
- InputLanguageSource.cs
- DataGridViewComboBoxEditingControl.cs
- AssociatedControlConverter.cs
- XPathSelectionIterator.cs
- InputProcessorProfiles.cs
- DataGridViewColumnHeaderCell.cs
- TypeReference.cs
- SqlFunctionAttribute.cs
- InstanceHandleReference.cs
- JsonWriterDelegator.cs
- JsonFormatReaderGenerator.cs
- ProfileSettings.cs
- HeaderLabel.cs
- WebColorConverter.cs
- StrongNameKeyPair.cs
- AutomationEvent.cs
- StopStoryboard.cs
- BindingCollection.cs
- IndependentlyAnimatedPropertyMetadata.cs
- Pair.cs
- RoleManagerModule.cs
- ContentPosition.cs
- StateBag.cs
- FontSourceCollection.cs
- TemplatePropertyEntry.cs
- ServiceBusyException.cs
- DropDownList.cs
- PreloadedPackages.cs
- XPathNodeList.cs
- ViewStateException.cs
- ReflectionUtil.cs
- ColorContext.cs
- MetadataWorkspace.cs
- Utils.cs
- ProcessHostServerConfig.cs
- UdpContractFilterBehavior.cs
- AggregatePushdown.cs
- PageAsyncTaskManager.cs
- HwndAppCommandInputProvider.cs
- InvalidPrinterException.cs
- CompositionAdorner.cs
- OptimizerPatterns.cs
- EndEvent.cs
- TrackingServices.cs
- ControlCollection.cs
- HostingEnvironmentWrapper.cs
- HttpConfigurationSystem.cs
- DrawingContextWalker.cs
- ClusterUtils.cs
- Span.cs
- InheritanceContextHelper.cs
- ValidationPropertyAttribute.cs
- ParserExtension.cs
- FixedSOMTextRun.cs
- EntityWrapper.cs
- TextBox.cs
- ContextStaticAttribute.cs
- TraceEventCache.cs
- Oid.cs
- ZipIOExtraFieldZip64Element.cs
- ThreadAbortException.cs
- AsyncOperationManager.cs
- BevelBitmapEffect.cs
- MultiAsyncResult.cs
- Hyperlink.cs
- Tuple.cs
- ValidatorAttribute.cs
- LineServicesCallbacks.cs
- XmlDictionaryString.cs
- mediaeventshelper.cs
- WindowsMenu.cs
- Activity.cs
- EntityViewGenerator.cs
- CanExecuteRoutedEventArgs.cs
- FreezableCollection.cs
- RepeatButton.cs
- DelegateCompletionCallbackWrapper.cs
- XmlSerializerFactory.cs
- WsatAdminException.cs
- CodeCastExpression.cs
- DataContractSerializerOperationBehavior.cs
- ListViewItem.cs
- FrameworkElement.cs
- ProtectedProviderSettings.cs
- EntityDataSourceContextDisposingEventArgs.cs
- ChildDocumentBlock.cs
- SelectedCellsCollection.cs
- HtmlInputFile.cs
- ResourcePart.cs
- InstancePersistenceContext.cs
- clipboard.cs
- SecUtil.cs
- CompositeControl.cs
- LayoutExceptionEventArgs.cs
- EncoderParameters.cs
- DataTableExtensions.cs
- NumericPagerField.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- ExpressionPrinter.cs