示例#1
0
        /// <summary>
        /// Constructs an activity instance suitable for executing a local activity.
        /// </summary>
        /// <param name="activityAction">The target activity action.</param>
        /// <param name="contextId">The activity context ID.</param>
        /// <returns>The constructed activity.</returns>
        internal ActivityBase CreateLocalActivity(LocalActivityAction activityAction, long contextId)
        {
            var activity = (ActivityBase)ActivatorUtilities.CreateInstance(NeonHelper.ServiceContainer, activityAction.ActivityType);

            activity.IsLocal = true;
            activity.Initialize(this, activityAction.ActivityType, activityAction.ActivityMethod, this.Client.DataConverter, contextId);

            return(activity);
        }
示例#2
0
        /// <summary>
        /// Constructs an activity instance suitable for executing a normal (non-local) activity.
        /// </summary>
        /// <param name="client">The associated client.</param>
        /// <param name="activityAction">The target activity action.</param>
        /// <param name="contextId">The activity context ID or <c>null</c> for local activities.</param>
        /// <returns>The constructed activity.</returns>
        internal static ActivityBase Create(CadenceClient client, LocalActivityAction activityAction, long?contextId)
        {
            Covenant.Requires <ArgumentNullException>(client != null);

            var activity = (ActivityBase)(activityAction.ActivityConstructor.Invoke(noArgs));

            activity.Initialize(client, activityAction.ActivityType, activityAction.ActivityMethod, client.DataConverter, contextId);

            return(activity);
        }
示例#3
0
        /// <summary>
        /// Constructs an activity instance suitable for executing a normal (non-local) activity.
        /// </summary>
        /// <param name="client">The associated client.</param>
        /// <param name="activityAction">The target activity action.</param>
        /// <param name="contextId">The activity context ID.</param>
        /// <returns>The constructed activity.</returns>
        internal static ActivityBase CreateLocal(CadenceClient client, LocalActivityAction activityAction, long contextId)
        {
            Covenant.Requires <ArgumentNullException>(client != null, nameof(client));

            var activity = (ActivityBase)ActivatorUtilities.CreateInstance(NeonHelper.ServiceContainer, activityAction.ActivityType);

            activity.IsLocal = true;
            activity.Initialize(client, activityAction.ActivityType, activityAction.ActivityMethod, client.DataConverter, contextId);

            return(activity);
        }