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
- MessagePartDescriptionCollection.cs
- PropertyPath.cs
- Effect.cs
- ChannelServices.cs
- EntityCommandExecutionException.cs
- LambdaCompiler.cs
- BuilderPropertyEntry.cs
- AttributeUsageAttribute.cs
- ObjectSecurity.cs
- ValuePattern.cs
- BrowserDefinitionCollection.cs
- TextureBrush.cs
- MailMessage.cs
- RemotingConfiguration.cs
- SettingsProperty.cs
- ActiveXHost.cs
- AccessDataSource.cs
- WebService.cs
- UriSection.cs
- DataGridViewControlCollection.cs
- TreeNodeConverter.cs
- SecurityDocument.cs
- ImageCodecInfoPrivate.cs
- UnknownBitmapEncoder.cs
- OperandQuery.cs
- SnapLine.cs
- ToolStripDropDownItem.cs
- IsolatedStorageFileStream.cs
- FieldToken.cs
- PrefixQName.cs
- DesignOnlyAttribute.cs
- StackBuilderSink.cs
- Dictionary.cs
- XPathBinder.cs
- PopOutPanel.cs
- OdbcPermission.cs
- EnumMember.cs
- CodeVariableReferenceExpression.cs
- CompositeKey.cs
- WorkflowInstance.cs
- Context.cs
- GPStream.cs
- FontWeights.cs
- PrivacyNoticeElement.cs
- CodeTypeMemberCollection.cs
- BrowserDefinitionCollection.cs
- BaseParaClient.cs
- CodeTypeParameter.cs
- AssemblyAttributes.cs
- SettingsSection.cs
- Point3DAnimationUsingKeyFrames.cs
- BCLDebug.cs
- InputProviderSite.cs
- Thickness.cs
- DiscoveryInnerClientAdhoc11.cs
- DataListItemEventArgs.cs
- DataGridViewColumn.cs
- HtmlUtf8RawTextWriter.cs
- DataColumnPropertyDescriptor.cs
- XmlTextReaderImplHelpers.cs
- basemetadatamappingvisitor.cs
- WSDualHttpBindingCollectionElement.cs
- LinearGradientBrush.cs
- Update.cs
- Splitter.cs
- SoapAttributes.cs
- IndentedTextWriter.cs
- NetworkAddressChange.cs
- Encoder.cs
- CharUnicodeInfo.cs
- DataServiceEntityAttribute.cs
- BufferedReadStream.cs
- IssuanceTokenProviderBase.cs
- CroppedBitmap.cs
- MILUtilities.cs
- WorkflowMarkupSerializationException.cs
- CodeTypeParameter.cs
- GridViewUpdatedEventArgs.cs
- OdbcParameterCollection.cs
- DetailsViewPagerRow.cs
- BehaviorEditorPart.cs
- TextRangeBase.cs
- Debug.cs
- UserInitiatedRoutedEventPermission.cs
- FunctionCommandText.cs
- KeyValuePairs.cs
- NameSpaceEvent.cs
- TextRangeAdaptor.cs
- DrawingImage.cs
- SubpageParaClient.cs
- XmlSignificantWhitespace.cs
- StatusBar.cs
- FixedLineResult.cs
- DesignerUtils.cs
- SqlDataReader.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- RSAOAEPKeyExchangeFormatter.cs
- KeyToListMap.cs
- LinqDataSourceEditData.cs
- HttpRequestCacheValidator.cs