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
- DataSourceXmlSubItemAttribute.cs
- QuadraticBezierSegment.cs
- BindValidationContext.cs
- FileVersion.cs
- ResourceExpressionBuilder.cs
- ReadOnlyCollection.cs
- EntityDataSourceUtil.cs
- UndirectedGraph.cs
- InternalConfigSettingsFactory.cs
- ExpandCollapseProviderWrapper.cs
- OdbcEnvironment.cs
- Rect.cs
- RealizationDrawingContextWalker.cs
- XmlSchemaSequence.cs
- RequestCacheManager.cs
- InfoCardBinaryReader.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ResourceDictionary.cs
- Path.cs
- ReflectionTypeLoadException.cs
- Camera.cs
- MouseButton.cs
- CustomAttributeFormatException.cs
- TypeDescriptorContext.cs
- PageHandlerFactory.cs
- Expander.cs
- DataGridViewColumnTypePicker.cs
- TypeCodeDomSerializer.cs
- OperationFormatStyle.cs
- DataGridViewCellStyleConverter.cs
- RemotingSurrogateSelector.cs
- Types.cs
- PropertyDescriptor.cs
- StaticFileHandler.cs
- Control.cs
- PolicyUtility.cs
- ItemsControlAutomationPeer.cs
- AddingNewEventArgs.cs
- ToolStripDesignerUtils.cs
- TraceSwitch.cs
- AutoCompleteStringCollection.cs
- ErrorFormatterPage.cs
- ExpressionEditor.cs
- PartialCachingControl.cs
- NavigationPropertyEmitter.cs
- RelationshipConverter.cs
- SystemParameters.cs
- Matrix3DStack.cs
- TransformerConfigurationWizardBase.cs
- TreeViewEvent.cs
- TextBoxBase.cs
- NamespaceList.cs
- Gdiplus.cs
- WindowsGraphics.cs
- DefaultTextStore.cs
- RC2CryptoServiceProvider.cs
- HttpClientCertificate.cs
- OutputCacheProfileCollection.cs
- SessionIDManager.cs
- DesigntimeLicenseContextSerializer.cs
- ISessionStateStore.cs
- DecimalFormatter.cs
- Pkcs7Recipient.cs
- XhtmlBasicSelectionListAdapter.cs
- ProcessModelInfo.cs
- CustomTypeDescriptor.cs
- DefaultPrintController.cs
- SQLString.cs
- TextDocumentView.cs
- CompositeControlDesigner.cs
- TdsRecordBufferSetter.cs
- IntSecurity.cs
- OdbcParameterCollection.cs
- ConfigurationStrings.cs
- MetadataArtifactLoader.cs
- ConfigXmlText.cs
- Attribute.cs
- DataSvcMapFile.cs
- EmptyQuery.cs
- DropSourceBehavior.cs
- ContractReference.cs
- MethodToken.cs
- MenuItemStyle.cs
- X509CertificateStore.cs
- DataGridBoundColumn.cs
- IdnElement.cs
- DataBindingCollection.cs
- NavigationHelper.cs
- URIFormatException.cs
- EncoderParameters.cs
- GroupQuery.cs
- SqlOuterApplyReducer.cs
- SignatureDescription.cs
- TransformProviderWrapper.cs
- CryptoKeySecurity.cs
- PrincipalPermission.cs
- FontCollection.cs
- ListViewItemSelectionChangedEvent.cs
- HtmlTextBoxAdapter.cs
- OutputCacheModule.cs