private static void PopulatePSComputerName(ActivityImplementationContext implementationContext, NativeActivityContext context, PSActivityArgumentInfo field, int index) { PropertyInfo property = implementationContext.GetType().GetProperty(field.Name); string[] strArrays = (string[])field.Value.Get(context); string[] strArrays1 = new string[1]; strArrays1[0] = strArrays[index]; property.SetValue(implementationContext, strArrays1, null); }
private void PopulateActivityImplementationContext(ActivityImplementationContext implementationContext, NativeActivityContext context, int index) { foreach (PSActivityArgumentInfo activityArgument in this.GetActivityArguments()) { PropertyInfo property = implementationContext.GetType().GetProperty(activityArgument.Name); if (property != null) { if (!string.Equals(activityArgument.Name, "PSComputerName", StringComparison.OrdinalIgnoreCase) || index == -1) { property.SetValue(implementationContext, activityArgument.Value.Get(context), null); } else { PSActivity.PopulatePSComputerName(implementationContext, context, activityArgument, index); } } else { throw new Exception(string.Concat("Could not find corresponding task context field for activity argument: ", activityArgument.Name)); } } }