Проверка нулевой переменной в условиях перехода Workflow 4.0 - PullRequest
0 голосов
/ 27 февраля 2012

Я внедряю State Machine в WF 4.0.В некоторых переходах я добавил условие, в котором я проверяю, что некоторые переменные имеют ожидаемые значения.Переменные - это перечисления и логические значения, и все в порядке.

Однако теперь я попытался оценить, когда свойство имеет значение null.У меня есть и аргумент в моем рабочем процессе, скажем, 'MyArgument' .При переходе я пытаюсь поставить условие типа 'MyArgument.MyProperty = Nothing '.Я никогда не разрабатывал в VB.NET, я не знаю, упускаю ли я что-то здесь ...

VS2010 выдает следующую ошибку: " Ошибка 4 Ошибка компилятора обнаружена при обработке выражения"MyArg.MyProp = Nothing ". Оператор '=' не определен для типов 'XXXX' и 'XXXX'

Имена типов точно совпадают, и я отладил VS2010, чтобы убедиться, что моя сборкане загружается из 2 разных мест.

Кто-нибудь сталкивался с такой же проблемой? Есть ли что-то, что мне не хватает? Как проверить, является ли свойство нулевым или нет?

Кстати,Я использую VS2010 SP 1 с установленным обновлением .NET Platform 1 на 64-разрядной версии W7.

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Я решаю подобную проблему с проверкой, является ли переменная нулевой. Мое решение:

  1. Объявление дополнительной локальной переменной:

  2. Проверьте, не является ли MyVariable (который является массивом строк) нулевым:

  3. Использование MyBooleanProperty в условии if:

    0]" DisplayName = "Если MyVariable не пусто" sap2010: WorkflowViewState.IdRef = "If_35">

  4. mtbwe - ссылка на библиотеку WF Expressions:

0 голосов
/ 28 марта 2012

Я не уверен, что это ответит на ваш вопрос, так как моя ситуация, я думаю, отличается от вашей.И я прошу прощения, если это излишне повторяет вещи, в которых вы уже хорошо разбираетесь.

У меня есть переменная в рамках рабочего процесса, которую я назову «WorkflowXvariable».У меня есть пользовательское действие под названием «CustomActivity».Чтобы взаимодействовать с WorkflowXvariable в коде CustomActivity, мне нужно сначала сделать две вещи: 1) Создать свойство в классе CustomActivity, которое я буду использовать для ссылки на WorkflowX.Я назову это «ActivityXproperty».2) В визуальном конструкторе в сетке свойств для экземпляра CustomActivity я установил ActivityXProperty равным WorkflowXVariable.

WorkflowXvariable может быть нулевым.В коде CustomActivity я могу проверить это:

if (ActivityXproperty == null) return;

Я наткнулся на ваше сообщение, потому что я хотел бы иметь возможность проверить, не был ли установлен ActivityXpropertyдля WorkflowXvariable, как и должно было быть, - является ли его «выражение» ничем.Я не определил способ сделать это, такой как проверка, является ли Activity.Expression нулевым.

Независимо от того, было ли для выражения ActivityXproperty ничего не установлено, или потому что WorkflowXvariable имеет значение null, все, что я могу проверить, это то, имеет ли ActivityXproperty значение null.

...