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 , ThenActionsveya false
ElseActionsiçin olarak değerlendirilirse yürütülecek eylemi tanımlayan soyut sınıfı temsil edertrue
. 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 Log
ve 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 bir yöntemini çağırır veya başvurulan derlemelerdeki türlerde statik yöntemler çağırır.
RuleAction, RuleHaltActionve RuleUpdateAction sınıflarının türetilen RuleStatementActiontemel 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 gösterir. Bu, etkilenen kuralların yeniden değerlendirilmesine neden olur.
Oluşturucular
RuleAction() |
Türetilmiş bir sınıfta uygulandığında, sınıfının yeni bir örneğini RuleAction başlatır. |
Yöntemler
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 RuleExecution örneği kullanarak öğesini RuleAction yürütür. |
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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi 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. |
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin