RuleAction Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje klasę abstrakcyjną, która definiuje akcję, która ma zostać wykonana, jeśli skojarzona Condition wartość true
, dla ThenActions , lub false
dla ElseActions . Ta klasa musi być dziedziczona.
public ref class RuleAction abstract
[System.Serializable]
public abstract class RuleAction
[<System.Serializable>]
type RuleAction = class
Public MustInherit Class RuleAction
- Dziedziczenie
-
RuleAction
- Pochodne
- Atrybuty
Przykłady
Poniższy kod tworzy akcję, która może być używana w zestawach reguł. Akcja ma nazwę Log
i przyjmuje jeden parametr, który musi obliczyć ciąg. Ta akcja powoduje wyjście ciągu do konsoli programu.
Aby użyć tego kodu, Dodaj go do projektu biblioteki klas i odwołuje się do biblioteki z projektu przepływu pracy.
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Text;
using System.Workflow.Activities.Rules;
using System.Workflow.ComponentModel.Compiler;
namespace LogRuleAction
{
public class Log : RuleAction
{
CodeExpression message;
public CodeExpression Message
{
get { return message; }
set { message = value; }
}
public Log()
{
// constructor required for deserialization
}
public Log(CodeExpression expression)
{
// constructor required by parser
message = expression;
}
public override bool Validate(RuleValidation validator)
{
ValidationError error;
if (message == null)
{
error = new ValidationError("Message cannot be null", 123);
validator.Errors.Add(error);
return false;
}
else
{
RuleExpressionInfo result = RuleExpressionWalker.Validate(validator, message, false);
if ((result == null) || (result.ExpressionType != typeof(string)))
{
error = new ValidationError("Message must return string result", 123);
validator.Errors.Add(error);
return false;
}
}
return (validator.Errors.Count == 0);
}
public override RuleAction Clone()
{
Log result = new Log();
result.Message = RuleExpressionWalker.Clone(message);
return result;
}
public override void Execute(RuleExecution context)
{
RuleExpressionResult result = RuleExpressionWalker.Evaluate(context, message);
if (result != null)
Console.WriteLine(result.Value);
}
public override ICollection<string> GetSideEffects(RuleValidation validation)
{
RuleAnalysis analysis = new RuleAnalysis(validation, true);
if (message != null)
RuleExpressionWalker.AnalyzeUsage(analysis, message, true, false, null);
return analysis.GetSymbols();
}
public override string ToString()
{
// what should be displayed by the parser
StringBuilder result = new StringBuilder("Log(");
RuleExpressionWalker.Decompile(result, message, null);
result.Append(")");
return result.ToString();
}
}
}
Uwagi
RuleStatementAction obiekty (które mogą być używane jednocześnie ThenActions i ElseActions ) zazwyczaj ustawiają wartość zmiennej dla jednej z właściwości działania, wywołują metodę działania lub wywołują metody statyczne dla typów w przywoływanych zestawach.
RuleAction to typ podstawowy, który RuleStatementAction RuleHaltAction RuleUpdateAction dziedziczy klasy, i. Zastosowania tych klas są następujące:
RuleStatementActionModyfikuje właściwość lub wywołuje metodę.
RuleHaltActionPowoduje RuleSet zatrzymanie wykonywania i zwraca kontrolę do metody wywołującej.
RuleUpdateActionJawnie wskazuje, że reguła aktualizuje zmienną. Powoduje to ponowną ocenę wszelkich reguł, których to dotyczy.
Konstruktory
RuleAction() |
Po zaimplementowaniu w klasie pochodnej inicjuje nowe wystąpienie RuleAction klasy. |
Metody
Clone() |
Tworzy głębokie kopie bieżącej RuleAction . |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Execute(RuleExecution) |
Wykonuje RuleAction przy użyciu określonego RuleExecution wystąpienia. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetSideEffects(RuleValidation) |
Zwraca pola i właściwości zaktualizowane przez RuleAction . |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Validate(RuleValidation) |
Sprawdza, czy RuleAction jest prawidłowo skonfigurowany i nie ma błędów. |