RuleAction Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İlişkili Condition için , trueveya ThenActionsfalseiçin olarak değerlendirilirse yürütülecek eylemi tanımlayan soyut sınıfı temsil ederElseActions. Bu sınıf devralınmalıdır.
public ref class RuleAction abstract
[System.Serializable]
public abstract class RuleAction
[<System.Serializable>]
type RuleAction = class
Public MustInherit Class RuleAction
- Devralma
-
RuleAction
- Türetilmiş
- Öznitelikler
Örnekler
Aşağıdaki kod, kural kümelerinde kullanılabilecek bir eylem oluşturur. Eylem olarak adlandırılır Logve bir dize olarak değerlendirmesi gereken tek bir parametre alır. Bu eylem dizeyi Konsol'a gönderir.
Bu kodu kullanmak için bir Sınıf Kitaplığı projesine ekleyin ve iş akışı projenizdeki kitaplığa başvurun.
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();
}
}
}
Açıklamalar
RuleStatementAction nesneleri (hem hem de ThenActionsElseActionsolarak kullanılabilir) genellikle etkinliğin özelliklerinden birinde bir değişken değeri ayarlar, etkinliğin yöntemini çağırır veya başvurulan derlemelerdeki türlerde statik yöntemleri çağırır.
RuleAction, RuleStatementActionve RuleHaltAction sınıflarının türetilen RuleUpdateActiontemel türdür. Bu sınıfların kullanımları aşağıdaki gibidir:
bir RuleStatementAction özelliği değiştirir veya bir yöntemi çağırır.
A RuleHaltAction , yürütmeyi RuleSet durdurmasına neden olur ve denetimi çağıran yönteme döndürür.
bir RuleUpdateAction kuralın bir değişkeni güncelleştirdiğini açıkça belirtir. Bu, etkilenen kuralların yeniden değerlendirilmesine neden olur.
Oluşturucular
| Name | Description |
|---|---|
| RuleAction() |
Türetilmiş bir sınıfta uygulandığında, sınıfının yeni bir örneğini RuleAction başlatır. |
Yöntemler
| Name | Description |
|---|---|
| Clone() |
Geçerli RuleActionöğesinin derin bir kopyasını oluşturur. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| Execute(RuleExecution) |
Belirtilen RuleAction örneği kullanarak yürütürRuleExecution. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetSideEffects(RuleValidation) |
tarafından RuleActiongüncelleştirilen alanları ve özellikleri döndürür. |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| Validate(RuleValidation) |
öğesinin RuleAction doğru yapılandırıldığını ve hatasız olduğunu doğrular. |