Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / FieldValue.cs / 1305376 / FieldValue.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Expressions
{
using System.Activities;
using System.Activities.Validation;
using System.ComponentModel;
using System.Reflection;
public sealed class FieldValue : CodeActivity
{
Func operationFunction;
[DefaultValue(null)]
public string FieldName
{
get;
set;
}
[DefaultValue(null)]
public InArgument Operand
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
bool isRequired = false;
if (typeof(TOperand).IsEnum)
{
metadata.AddValidationError(SR.TargetTypeCannotBeEnum(this.GetType().Name, this.DisplayName));
}
if (string.IsNullOrEmpty(this.FieldName))
{
metadata.AddValidationError(SR.ActivityPropertyMustBeSet("FieldName", this.DisplayName));
}
else
{
FieldInfo fieldInfo = null;
Type operandType = typeof(TOperand);
fieldInfo = operandType.GetField(this.FieldName);
if (fieldInfo == null)
{
metadata.AddValidationError(SR.MemberNotFound(this.FieldName, typeof(TOperand).Name));
}
else
{
isRequired = !fieldInfo.IsStatic;
ValidationError validationError;
if (!MemberExpressionHelper.TryGenerateLinqDelegate(this.FieldName, true, fieldInfo.IsStatic, out this.operationFunction, out validationError))
{
metadata.AddValidationError(validationError);
}
}
}
MemberExpressionHelper.AddOperandArgument(metadata, this.Operand, isRequired);
}
protected override TResult Execute(CodeActivityContext context)
{
TOperand operandValue = this.Operand.Get(context);
return this.operationFunction(operandValue);
}
}
}
// 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
- UnknownWrapper.cs
- ListViewTableCell.cs
- EntityDataSourceView.cs
- ObjectDataSourceSelectingEventArgs.cs
- DataGridViewRowStateChangedEventArgs.cs
- RenderTargetBitmap.cs
- ProjectionPathBuilder.cs
- OAVariantLib.cs
- shaper.cs
- QilNode.cs
- InternalsVisibleToAttribute.cs
- ObjectListDesigner.cs
- XmlSchemaComplexContent.cs
- InkPresenter.cs
- DocumentViewerAutomationPeer.cs
- FixedPage.cs
- HostingEnvironment.cs
- PropertyEmitter.cs
- WhereQueryOperator.cs
- ButtonFieldBase.cs
- ServerValidateEventArgs.cs
- BinaryKeyIdentifierClause.cs
- DbConnectionPoolGroupProviderInfo.cs
- BitmapDownload.cs
- UnsafeNativeMethods.cs
- KeyGesture.cs
- ClientConfigPaths.cs
- MetadataException.cs
- InvalidEnumArgumentException.cs
- ComboBoxRenderer.cs
- TreeNodeBindingCollection.cs
- InkPresenter.cs
- XDRSchema.cs
- StrokeIntersection.cs
- RoleGroupCollection.cs
- ResetableIterator.cs
- PlacementWorkspace.cs
- DiscoveryDocumentSearchPattern.cs
- AxisAngleRotation3D.cs
- FileIOPermission.cs
- ConditionalDesigner.cs
- StorageConditionPropertyMapping.cs
- X509CertificateCollection.cs
- ETagAttribute.cs
- DoubleLink.cs
- SiteMapDataSourceView.cs
- MultiAsyncResult.cs
- NameTable.cs
- ProfileSettingsCollection.cs
- ComponentDesigner.cs
- TokenBasedSet.cs
- updateconfighost.cs
- TextTreeInsertUndoUnit.cs
- HttpApplication.cs
- Int32AnimationBase.cs
- _AuthenticationState.cs
- SqlCacheDependencyDatabaseCollection.cs
- NavigatingCancelEventArgs.cs
- Variable.cs
- RelationshipConverter.cs
- EpmTargetTree.cs
- GroupDescription.cs
- TypeValidationEventArgs.cs
- ClientSideQueueItem.cs
- WebPartConnectionsConnectVerb.cs
- TemplateBindingExpression.cs
- SqlDataSourceView.cs
- TypeGeneratedEventArgs.cs
- Serialization.cs
- InputProcessorProfilesLoader.cs
- MessageFilterTable.cs
- XmlCustomFormatter.cs
- NativeRecognizer.cs
- CircleHotSpot.cs
- EntityDataSourceWrapperCollection.cs
- AmbientLight.cs
- DefinitionUpdate.cs
- Barrier.cs
- MonikerUtility.cs
- AppDomainManager.cs
- ICollection.cs
- Point3DAnimationBase.cs
- ServiceEndpoint.cs
- Ray3DHitTestResult.cs
- Material.cs
- ChangePassword.cs
- Label.cs
- AccessibleObject.cs
- WebPermission.cs
- ExpressionBuilderContext.cs
- CodeGroup.cs
- NumericUpDownAccelerationCollection.cs
- RtfNavigator.cs
- Header.cs
- SmtpTransport.cs
- StreamUpdate.cs
- ObjectListFieldsPage.cs
- IBuiltInEvidence.cs
- DataGridViewToolTip.cs
- CodeTypeReferenceSerializer.cs