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
- AnimatedTypeHelpers.cs
- ProfileManager.cs
- ConfigurationElementCollection.cs
- ColumnTypeConverter.cs
- TagMapInfo.cs
- ControlPropertyNameConverter.cs
- EventEntry.cs
- DocumentPaginator.cs
- Lock.cs
- OleDbReferenceCollection.cs
- IgnoreSectionHandler.cs
- TextFormatterHost.cs
- DataContractSerializerOperationFormatter.cs
- ManipulationPivot.cs
- ColumnReorderedEventArgs.cs
- ScrollBarAutomationPeer.cs
- ProtectedConfigurationSection.cs
- TargetControlTypeCache.cs
- Point3DCollection.cs
- RoleManagerModule.cs
- IRCollection.cs
- DBSqlParserColumn.cs
- StreamWithDictionary.cs
- Point4D.cs
- CompModSwitches.cs
- Model3DGroup.cs
- ChildDocumentBlock.cs
- XmlAttributeHolder.cs
- ILGenerator.cs
- RadioButtonRenderer.cs
- DeviceSpecific.cs
- BindingManagerDataErrorEventArgs.cs
- FtpWebResponse.cs
- HostProtectionPermission.cs
- PolicyManager.cs
- FileAuthorizationModule.cs
- WebMessageEncoderFactory.cs
- SqlConnectionFactory.cs
- AnnotationResource.cs
- XmlSchemaSet.cs
- ObjectMemberMapping.cs
- RepeaterCommandEventArgs.cs
- SQLCharsStorage.cs
- LinkButton.cs
- EdmScalarPropertyAttribute.cs
- AutoCompleteStringCollection.cs
- OleDbInfoMessageEvent.cs
- FilteredReadOnlyMetadataCollection.cs
- TransformerTypeCollection.cs
- HostedElements.cs
- NonPrimarySelectionGlyph.cs
- CultureSpecificCharacterBufferRange.cs
- Recipient.cs
- BadImageFormatException.cs
- WSTransactionSection.cs
- OdbcError.cs
- InstanceCreationEditor.cs
- Size.cs
- GlobalizationSection.cs
- GestureRecognitionResult.cs
- StringDictionary.cs
- WCFModelStrings.Designer.cs
- TextRunTypographyProperties.cs
- FrameworkElement.cs
- SettingsPropertyValue.cs
- ConfigurationLocation.cs
- RijndaelManagedTransform.cs
- TableRowCollection.cs
- FrameworkContextData.cs
- SoapElementAttribute.cs
- BaseTemplateBuildProvider.cs
- ImageField.cs
- DataRowCollection.cs
- ReadOnlyDataSourceView.cs
- LinkedResourceCollection.cs
- SafeRightsManagementHandle.cs
- DigitalSignature.cs
- StylusCaptureWithinProperty.cs
- PlainXmlWriter.cs
- SchemaEntity.cs
- IgnoreSection.cs
- QilExpression.cs
- ExtensionDataReader.cs
- SystemWebSectionGroup.cs
- GetWinFXPath.cs
- PartialList.cs
- RequestCacheManager.cs
- ModelItemKeyValuePair.cs
- BitmapDecoder.cs
- CommandBindingCollection.cs
- ConfigurationSectionHelper.cs
- CacheChildrenQuery.cs
- InvalidCommandTreeException.cs
- DefaultShape.cs
- RenderDataDrawingContext.cs
- RewritingProcessor.cs
- CriticalFinalizerObject.cs
- WebZone.cs
- WebPartMinimizeVerb.cs
- XmlTextReaderImplHelpers.cs