WorkflowInspectionServices.GetActivities из "SubWorkflows" - PullRequest
1 голос
/ 23 ноября 2011

Я получаю сообщение об ошибке при запуске этого кода.

IEnumerable<Activity> activityList = WorkflowInspectionServices.GetActivities(activityCurrent);


if (activityList.Count() <= 0)

У меня есть ряд рабочих процессов, которые я хочу пройти через его действия.У меня нет проблем, в то время как действия, которые я использую в рабочих процессах, являются действиями кода или родными действиями.Проблема возникает, когда я использую другой рабочий процесс в рабочем процессе (я надеюсь, что это имеет смысл)

Ошибка в activityList.Count(), который не может создать неизвестный тип '{clr-namespace:....PhysicalInbound} Назначение'.

На самом деле это работает, если я помещаю содержимое «subworkflow» в «Parent» workflow.Я предполагаю, что это связано с импортом, но я до сих пор не смог понять это: S

StackTrace:

   at System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
   at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter, Boolean closeWriter)
   at System.Activities.XamlIntegration.FuncDeferringLoader.FuncFactory`1.Evaluate()
   at System.Activities.DynamicActivity.OnInternalCacheMetadata(Boolean createEmptyBindings)
   at System.Activities.Activity.InternalCacheMetadata(Boolean createEmptyBindings, IList`1& validationErrors)
   at System.Activities.ActivityUtilities.ProcessActivity(ChildActivity childActivity, ChildActivity& nextActivity, Stack`1& activitiesRemaining, ActivityCallStack parentChain, IList`1& validationErrors, ProcessActivityTreeOptions options, ProcessActivityCallback callback)
   at System.Activities.ActivityUtilities.ProcessActivityTreeCore(ChildActivity currentActivity, ActivityCallStack parentChain, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList`1& validationErrors)
   at System.Activities.ActivityUtilities.CacheRootMetadata(Activity activity, LocationReferenceEnvironment hostEnvironment, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList`1& validationErrors)
   at System.Activities.WorkflowInspectionServices.<GetActivities>d__0.MoveNext()
   at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)

Спасибо за ваше время,

Джоан.

Ответы [ 2 ]

0 голосов
/ 11 января 2016

Это часть того, как спроектирован фасад служб XAML.Вам необходимо установить LocalAssembly в ReaderSettings.Причина в том, что читатели и сборщики не должны предполагать, какая сборка считается локальной в XAML, поскольку она могла и, вероятно, была разработана в другой сборке, отличной от той, которая загружает рабочий процесс.*

https://social.msdn.microsoft.com/Forums/vstudio/en-US/0086f55d-3ed1-4015-90ca-ad8144178255/why-can-i-not-load-a-workflow-using-activityxamlservicesload-when-it-contains-a-custom-activity?forum=wfprerelease

0 голосов
/ 23 ноября 2011

У меня была такая же проблема.В моем случае это было потому, что я поместил рабочий процесс Родителя и «рабочие процессы» в одну сборку.

Если это ваш случай, попробуйте поместить их в другую сборку, как вы делаете с действиями.

...