Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / InvokeMethod.cs / 1305376 / InvokeMethod.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities.Validation; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.Collections; using System.Windows.Markup; using System.Runtime; [ContentProperty("Parameters")] public sealed class InvokeMethod : AsyncCodeActivity { Collectionparameters; Collection genericTypeArguments; MethodResolver methodResolver; MethodExecutor methodExecutor; RuntimeArgument resultArgument; public InvokeMethod() : base() { } public Collection GenericTypeArguments { get { if (this.genericTypeArguments == null) { this.genericTypeArguments = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.genericTypeArguments; } } public string MethodName { get; set; } public Collection Parameters { get { if (this.parameters == null) { this.parameters = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.parameters; } } [DefaultValue(null)] public OutArgument Result { get; set; } [DefaultValue(null)] public InArgument TargetObject { get; set; } [DefaultValue(null)] public Type TargetType { get; set; } [DefaultValue(false)] public bool RunAsynchronously { get; set; } protected override void CacheMetadata(CodeActivityMetadata metadata) { Collection arguments = new Collection (); Type targetObjectType = TypeHelper.ObjectType; if (this.TargetObject != null) { targetObjectType = this.TargetObject.ArgumentType; } RuntimeArgument targetObjectArgument = new RuntimeArgument("TargetObject", targetObjectType, ArgumentDirection.In); metadata.Bind(this.TargetObject, targetObjectArgument); arguments.Add(targetObjectArgument); Type resultType = TypeHelper.ObjectType; if (this.Result != null) { resultType = this.Result.ArgumentType; } this.resultArgument = new RuntimeArgument("Result", resultType, ArgumentDirection.Out); metadata.Bind(this.Result, this.resultArgument); arguments.Add(resultArgument); // Parameters are named according to MethodInfo name if DetermineMethodInfo // succeeds, otherwise arbitrary names are used. this.methodResolver = CreateMethodResolver(); this.methodResolver.DetermineMethodInfo(metadata, out this.methodExecutor); this.methodResolver.RegisterParameters(arguments); metadata.SetArgumentsCollection(arguments); this.methodResolver.Trace(); if (this.methodExecutor != null) { this.methodExecutor.Trace(this); } } protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state) { return this.methodExecutor.BeginExecuteMethod(context, callback, state); } protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result) { this.methodExecutor.EndExecuteMethod(context, result); } MethodResolver CreateMethodResolver() { MethodResolver resolver = new MethodResolver { MethodName = this.MethodName, RunAsynchronously = this.RunAsynchronously, TargetType = this.TargetType, TargetObject = this.TargetObject, GenericTypeArguments = this.GenericTypeArguments, Parameters = this.Parameters, Result = this.resultArgument, Parent = this }; if (this.Result != null) { resolver.ResultType = this.Result.ArgumentType; } else { resolver.ResultType = typeof(object); } return resolver; } } } // 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
- SchemaAttDef.cs
- ObjectListCommandCollection.cs
- FileVersion.cs
- StorageEntitySetMapping.cs
- PropertyValue.cs
- ISCIIEncoding.cs
- ExceptionUtil.cs
- DesignerHelpers.cs
- FormViewCommandEventArgs.cs
- BitmapEffectGeneralTransform.cs
- ColorAnimationBase.cs
- ContentWrapperAttribute.cs
- BaseParagraph.cs
- SequenceQuery.cs
- HostedHttpTransportManager.cs
- Range.cs
- StateElement.cs
- ThicknessAnimationUsingKeyFrames.cs
- DiscardableAttribute.cs
- Sql8ExpressionRewriter.cs
- LinqToSqlWrapper.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- PartialCachingAttribute.cs
- RepeatButtonAutomationPeer.cs
- JsonDeserializer.cs
- XmlNamespaceMapping.cs
- ImpersonationContext.cs
- RenderDataDrawingContext.cs
- DependencyPropertyDescriptor.cs
- ProviderManager.cs
- ConstructorExpr.cs
- Roles.cs
- SafeTokenHandle.cs
- WindowsEditBox.cs
- ReturnValue.cs
- NamespaceCollection.cs
- WebControlAdapter.cs
- CheckBoxList.cs
- Internal.cs
- HttpClientCertificate.cs
- TextTreeRootTextBlock.cs
- Graphics.cs
- XmlByteStreamReader.cs
- XmlElement.cs
- SendingRequestEventArgs.cs
- ReflectPropertyDescriptor.cs
- FunctionDetailsReader.cs
- DoubleCollectionConverter.cs
- HttpHandlersSection.cs
- ConstructorBuilder.cs
- UDPClient.cs
- SrgsNameValueTag.cs
- SecureUICommand.cs
- SqlRewriteScalarSubqueries.cs
- TypeDelegator.cs
- AsyncDataRequest.cs
- SelectionList.cs
- ColorConvertedBitmap.cs
- MissingManifestResourceException.cs
- StateBag.cs
- StatusBarPanelClickEvent.cs
- EditorPart.cs
- SqlUserDefinedTypeAttribute.cs
- PasswordBoxAutomationPeer.cs
- BindingContext.cs
- NetDispatcherFaultException.cs
- ResourceDescriptionAttribute.cs
- SqlResolver.cs
- StateRuntime.cs
- CacheHelper.cs
- TextAction.cs
- ViewStateChangedEventArgs.cs
- ConstraintStruct.cs
- AxisAngleRotation3D.cs
- TextEncodedRawTextWriter.cs
- UnsafeCollabNativeMethods.cs
- PropertyStore.cs
- PickBranchDesigner.xaml.cs
- TopClause.cs
- DispatchChannelSink.cs
- UpdateCompiler.cs
- XmlSchemaInclude.cs
- RuntimeConfigurationRecord.cs
- SmiEventSink.cs
- Decorator.cs
- ScriptingProfileServiceSection.cs
- ItemsChangedEventArgs.cs
- RichTextBox.cs
- QueryableDataSource.cs
- TCPListener.cs
- WorkflowDesigner.cs
- ConnectionConsumerAttribute.cs
- AudioSignalProblemOccurredEventArgs.cs
- ReadContentAsBinaryHelper.cs
- KeyInterop.cs
- Style.cs
- UrlAuthFailedErrorFormatter.cs
- ValidationErrorCollection.cs
- CheckBoxStandardAdapter.cs
- SimpleMailWebEventProvider.cs