Правила WF и CodeTypeReferenceExpression - PullRequest
0 голосов
/ 28 августа 2009

Я переместил некоторые переменные в классы в своем рабочем процессе.

К сожалению, теперь правила не работают, я пытался установить тип, но продолжаю получать эту ошибку.

Проверка действия 'ifRequestComplete' завершилась неудачно: свойство «Condition» имеет недопустимое значение.Выражение условия недопустимо.Указанное имя типа ("Request, ApprovalWorkflow") не может быть разрешено.

без 'ns0: CodeTypeReferenceExpression Type = ".." />' Я получаю эту ошибку

Проверка действия 'ifRequestComplete' завершилась неудачно: свойство «Condition» имеет недопустимое значение.Выражение условия недопустимо.Поле «gReq» для типа «ApprovalWorkflow.ApprovalFlow» не существует или недоступно.

Класс запроса создается в пространстве имен ApprovalWorkflow в том же проекте, что и рабочий процесс, также называемый ApprovalWorkflow.

namespace ApprovalWorkflow
{
    public class Request    {...}
}

файл .rules содержит это

    <RuleExpressionCondition Name="ifRequestComplete">
        <RuleExpressionCondition.Expression>
            <ns0:CodeBinaryOperatorExpression Operator="ValueEquality" xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <ns0:CodeBinaryOperatorExpression.Left>
                    <ns0:CodeFieldReferenceExpression FieldName="StatusCode">
                        <ns0:CodeFieldReferenceExpression.TargetObject>
                            <ns0:CodeFieldReferenceExpression FieldName="gReq">
                                <ns0:CodeFieldReferenceExpression.TargetObject>
                                    <ns0:CodeTypeReferenceExpression Type="Request, ApprovalWorkflow" />
                                    <ns0:CodeThisReferenceExpression />
                                </ns0:CodeFieldReferenceExpression.TargetObject>
                            </ns0:CodeFieldReferenceExpression>
                        </ns0:CodeFieldReferenceExpression.TargetObject>
                    </ns0:CodeFieldReferenceExpression>
                </ns0:CodeBinaryOperatorExpression.Left>
                <ns0:CodeBinaryOperatorExpression.Right>
                    <ns0:CodePrimitiveExpression>
                        <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">COM</ns1:String>
                        </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                </ns0:CodeBinaryOperatorExpression.Right>
            </ns0:CodeBinaryOperatorExpression>
        </RuleExpressionCondition.Expression>
    </RuleExpressionCondition>

Я пробовал несколько разных способов написания типа «Запрос», «ApprovalWorkflow.Request», «ApprovalWorkflow.Request,ApprovalWorkflow ", похоже, ничего не работает.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 28 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...