gpt4 book ai didi

c# - FactRetreiver 和 FactCreator 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:13 25 4
gpt4 key购买 nike

这是一个 FactCreator 的实例:

public class MyFactCreator : IFactCreator
{
private object[] myFacts;
public MyFactCreator()
{
}

public object[] CreateFacts ( RuleSetInfo rulesetInfo )
{
myFacts = new object[1];
myFacts.SetValue(new MySampleBusinessObject(),0);
return myFacts;
}
public Type[] GetFactTypes (RuleSetInfo rulesetInfo)
{
return null;
}
}

这是 FactRetriever 的代码:

public class MyFactRetriever:IFactRetriever
{
public object UpdateFacts(RuleSetInfo rulesetInfo, Microsoft.RuleEngine.RuleEngine engine, object factsHandleIn)
{
object factsHandleOut;
if (factsHandleIn == null)

{
SqlDataAdapter dAdapt = new SqlDataAdapter();
dAdapt.TableMappings.Add("Table", "CustInfo");
SqlConnection conn = new SqlConnection("Initial Catalog=Northwind;Data Source=(local);Integrated Security=SSPI;");
conn.Open();
SqlCommand myCommand = new SqlCommand("SELECT * FROM CustInfo", conn);
myCommand.CommandType = CommandType.Text;
dAdapt.SelectCommand = myCommand;
DataSet ds = new DataSet("Northwind");
dAdapt.Fill(ds);
TypedDataTable tdt = new TypedDataTable(ds.Tables["CustInfo"]);
engine.Assert(tdt);
factsHandleOut = tdt;
}

else
factsHandleOut = factsHandleIn;
return factsHandleOut;
}

既然它们都提供政策事实列表,为什么它们不一样?它们有什么区别?

最佳答案

FactCreater 是专门用于业务规则编写器的帮助器类,当您在编写器中执行测试策略时,它使您能够断言短期、非 TypedXmlDocument 事实,例如 .Net 类的实例。它不在 Composer 之外使用。

FactRetriever 用于断言事实,称为 Long Term,在幕后购买引擎。每当执行策略时都会使用它,包括由 Composer 执行。

FactCreator 实际上相当于 Orchestration 中的 CallRules Shape 的 Composer,您可以在其中指定短期事实。

关于c# - FactRetreiver 和 FactCreator 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com