Правила WF и CodeTypeReferenceExpression

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

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

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

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

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

Класс Request создается в пространстве имен 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», похоже, ничего не работает.

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


person CaffGeek    schedule 27.08.2009    source источник


Ответы (1)


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

person CaffGeek    schedule 28.08.2009