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
- GridItem.cs
- QueryMatcher.cs
- ZipFileInfo.cs
- InternalConfigRoot.cs
- XmlLanguageConverter.cs
- GenericEnumerator.cs
- ResourcePart.cs
- TextParentUndoUnit.cs
- ObjectDataSourceFilteringEventArgs.cs
- SkinIDTypeConverter.cs
- Merger.cs
- EmulateRecognizeCompletedEventArgs.cs
- EntityViewGenerationConstants.cs
- EDesignUtil.cs
- SqlDataSourceFilteringEventArgs.cs
- BrowserCapabilitiesCompiler.cs
- WindowsSolidBrush.cs
- ExtendedProperty.cs
- ServicePoint.cs
- WebConvert.cs
- DropDownButton.cs
- ObjectDataSourceDisposingEventArgs.cs
- CustomAttribute.cs
- WorkflowApplicationEventArgs.cs
- TypeBuilder.cs
- DbDataAdapter.cs
- Mappings.cs
- CodeArrayCreateExpression.cs
- DefaultObjectMappingItemCollection.cs
- XamlClipboardData.cs
- Roles.cs
- Invariant.cs
- CaseInsensitiveHashCodeProvider.cs
- GetRecipientListRequest.cs
- JsonReader.cs
- SmtpNegotiateAuthenticationModule.cs
- MDIControlStrip.cs
- UnsafeNativeMethods.cs
- WizardStepBase.cs
- Size3DConverter.cs
- Int32AnimationBase.cs
- ProvideValueServiceProvider.cs
- GenericEnumerator.cs
- Pen.cs
- UTF7Encoding.cs
- EditorPartChrome.cs
- HwndAppCommandInputProvider.cs
- XDeferredAxisSource.cs
- PrintDialogException.cs
- SoapSchemaMember.cs
- TTSEvent.cs
- XmlSchemaChoice.cs
- RoutedPropertyChangedEventArgs.cs
- SQLBoolean.cs
- TemplateControlCodeDomTreeGenerator.cs
- ApplicationCommands.cs
- Process.cs
- GridPattern.cs
- SafeUserTokenHandle.cs
- UInt64.cs
- InputBuffer.cs
- SystemGatewayIPAddressInformation.cs
- PagesSection.cs
- ResourcePermissionBaseEntry.cs
- TypeDescriptor.cs
- StylusSystemGestureEventArgs.cs
- ZoneIdentityPermission.cs
- UpdateCommand.cs
- XmlDataSourceView.cs
- HandlerFactoryWrapper.cs
- StateDesigner.TransitionInfo.cs
- AncestorChangedEventArgs.cs
- BuildProvider.cs
- MetadataItemEmitter.cs
- State.cs
- QueryContinueDragEvent.cs
- DataGridViewAccessibleObject.cs
- Roles.cs
- WebExceptionStatus.cs
- IsolatedStorageException.cs
- LayoutDump.cs
- EventSinkHelperWriter.cs
- Vector3DConverter.cs
- SystemWebSectionGroup.cs
- BrowserDefinitionCollection.cs
- XmlTextEncoder.cs
- ReferencedCategoriesDocument.cs
- TableLayoutPanelCellPosition.cs
- TextRunProperties.cs
- IndividualDeviceConfig.cs
- ValidatedControlConverter.cs
- TextClipboardData.cs
- ExpressionBuilder.cs
- GroupQuery.cs
- QilLiteral.cs
- RIPEMD160Managed.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- SerializationEventsCache.cs
- ExpressionNode.cs
- UnicastIPAddressInformationCollection.cs