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
- SettingsPropertyValue.cs
- CommonBehaviorsSection.cs
- CodeValidator.cs
- Size3D.cs
- KeyBinding.cs
- XslCompiledTransform.cs
- StructuralComparisons.cs
- ScriptResourceHandler.cs
- TdsParserSafeHandles.cs
- ButtonDesigner.cs
- ContextConfiguration.cs
- ObjectDataSourceWizardForm.cs
- ShapeTypeface.cs
- EdmComplexPropertyAttribute.cs
- ObjectDataSource.cs
- Permission.cs
- ListItemParagraph.cs
- ProfileService.cs
- Events.cs
- XamlInt32CollectionSerializer.cs
- ManifestResourceInfo.cs
- UserControlBuildProvider.cs
- NamespaceEmitter.cs
- QuestionEventArgs.cs
- HtmlHead.cs
- TimeSpanConverter.cs
- XmlText.cs
- ManifestResourceInfo.cs
- WebBrowserContainer.cs
- FileDialogCustomPlace.cs
- XmlSchemaElement.cs
- DisplayNameAttribute.cs
- RequestCacheManager.cs
- DefaultCommandConverter.cs
- SetterTriggerConditionValueConverter.cs
- Padding.cs
- ItemsControlAutomationPeer.cs
- RSAPKCS1SignatureDeformatter.cs
- AutomationIdentifierGuids.cs
- basecomparevalidator.cs
- Parameter.cs
- RegexCode.cs
- WindowsIdentity.cs
- SelectionProcessor.cs
- OutputCacheSettings.cs
- CodeTypeDeclaration.cs
- WeakRefEnumerator.cs
- ReadOnlyTernaryTree.cs
- BamlStream.cs
- Decoder.cs
- ConfigXmlCDataSection.cs
- HttpWebRequest.cs
- GcSettings.cs
- WebProxyScriptElement.cs
- XmlIterators.cs
- DataBindingCollectionConverter.cs
- XPathConvert.cs
- NameValueFileSectionHandler.cs
- StylusCaptureWithinProperty.cs
- ContextStaticAttribute.cs
- ObjectTokenCategory.cs
- IsolatedStorageFile.cs
- Highlights.cs
- SqlDataAdapter.cs
- ReadOnlyTernaryTree.cs
- TypographyProperties.cs
- Journal.cs
- BinaryReader.cs
- NameTable.cs
- CompositeFontInfo.cs
- EditCommandColumn.cs
- Base64Decoder.cs
- WebPartDisplayModeCollection.cs
- Buffer.cs
- ThreadAttributes.cs
- PackWebRequest.cs
- DirectoryLocalQuery.cs
- IMembershipProvider.cs
- SplashScreen.cs
- DataKey.cs
- RegexCapture.cs
- LinkUtilities.cs
- DateBoldEvent.cs
- AttributeUsageAttribute.cs
- ObjectItemCollection.cs
- FileLoadException.cs
- Package.cs
- PointHitTestResult.cs
- ReturnEventArgs.cs
- DataBindingCollectionConverter.cs
- EndOfStreamException.cs
- DataRecord.cs
- VisualBasicReference.cs
- TemplateNameScope.cs
- ObjectConverter.cs
- RegionData.cs
- PrintingPermission.cs
- HostingEnvironmentSection.cs
- XmlNavigatorFilter.cs
- BitmapEffectInputConnector.cs