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
- VoiceInfo.cs
- BrowserCapabilitiesCodeGenerator.cs
- X509CertificateCollection.cs
- InstanceValue.cs
- ImageCreator.cs
- BufferedStream.cs
- ExecutionEngineException.cs
- WebRequest.cs
- DocumentScope.cs
- PersonalizationStateInfo.cs
- Matrix.cs
- RegexRunner.cs
- GraphicsState.cs
- XmlEntityReference.cs
- TheQuery.cs
- QueryReaderSettings.cs
- BitStream.cs
- AppLevelCompilationSectionCache.cs
- StatusBarDrawItemEvent.cs
- FixedSOMFixedBlock.cs
- GenericWebPart.cs
- regiisutil.cs
- XsltException.cs
- PropertyStore.cs
- NullReferenceException.cs
- AuthStoreRoleProvider.cs
- XPathParser.cs
- BitmapSource.cs
- ResourcePool.cs
- BitmapEffectRenderDataResource.cs
- XamlInt32CollectionSerializer.cs
- TextTreeTextNode.cs
- ProxyWebPartConnectionCollection.cs
- PartialTrustVisibleAssembliesSection.cs
- ScopelessEnumAttribute.cs
- AuthenticationManager.cs
- ObsoleteAttribute.cs
- DataGridViewRowEventArgs.cs
- PassportPrincipal.cs
- TakeQueryOptionExpression.cs
- TextParagraphProperties.cs
- ObjectIDGenerator.cs
- Rfc2898DeriveBytes.cs
- DiscoveryDefaults.cs
- StickyNoteHelper.cs
- SignatureDescription.cs
- ModifierKeysConverter.cs
- DataGridViewCellCancelEventArgs.cs
- CompressionTransform.cs
- InternalControlCollection.cs
- InstanceDataCollectionCollection.cs
- Rect3DConverter.cs
- AutomationTextAttribute.cs
- ApplicationServiceHelper.cs
- ToolStripRenderEventArgs.cs
- SharedUtils.cs
- StylusEditingBehavior.cs
- XamlPathDataSerializer.cs
- CommandBindingCollection.cs
- BindingGroup.cs
- PerformanceCountersBase.cs
- CodeGen.cs
- MergablePropertyAttribute.cs
- StringConverter.cs
- CodeConstructor.cs
- EventLogWatcher.cs
- SetterBaseCollection.cs
- IsolatedStorageFilePermission.cs
- CachedPathData.cs
- TextServicesDisplayAttributePropertyRanges.cs
- NullableBoolConverter.cs
- SqlInternalConnection.cs
- ElementMarkupObject.cs
- ResourceWriter.cs
- DetailsViewDeletedEventArgs.cs
- ModuleBuilder.cs
- OleAutBinder.cs
- AttributedMetaModel.cs
- NativeMethods.cs
- MultiView.cs
- AxHost.cs
- DLinqDataModelProvider.cs
- DoubleAnimationClockResource.cs
- ListViewItem.cs
- HttpRuntime.cs
- ReliableInputConnection.cs
- XmlReflectionMember.cs
- Utils.cs
- ToolStripContentPanel.cs
- Single.cs
- CheckBoxBaseAdapter.cs
- NCryptSafeHandles.cs
- DocumentSequenceHighlightLayer.cs
- DataRecordInternal.cs
- DynamicObject.cs
- MessagePartProtectionMode.cs
- UniformGrid.cs
- CapabilitiesUse.cs
- ParameterDataSourceExpression.cs
- OracleTimeSpan.cs