我正在尝试使用外部类库方法调用AddValidationErrors来纠正Business Rule Composer中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在Business Rule Composer中测试我的策略时,这是有效的。但是当我尝试在Orchestration中时,它的规则并没有被触发。任何人都可以帮助我。以下是我的验证错误代码
public void AddValidationError(TypedXmlDocument activeDoc, string err)
{
XmlDocument doc = activeDoc.Document.OwnerDocument;
XmlNode errorRoot = doc.SelectSingleNode("//ValidationErrors");
XmlElement newError = doc.CreateElement("Error");
newError.InnerText = err;
errorRoot.AppendChild(newError);
}
FactCreator类:
private object[] objs;
public FactCreator()
{
}
public object[] CreateFacts(RuleSetInfo ruleSetInfo)
{
objs = new object[1];
objs[0] = new ValidationErrors.ValidationErrors();
return (objs);
}
public Type[] GetFactTypes(RuleSetInfo ruleSetInfo)
{
return null;
}
答案 0 :(得分:2)
您是否为.NET启用了BRE静态支持?
要为这些方法启用静态.Net方法的BRE支持,请将名为REG_DWORD
的{{1}}项值StaticSupport
添加到以下注册表路径:
32位Windows
1
64位Windows
HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\
这是一次性活动。
以上信息来自this博客。
MSDN提取物添加:
另一种选择是将StaticSupport放在BTNTsvc [64] .exe.config中 文件,因为此处的任何设置都会覆盖注册表中的内容。进一步, 人们也可以提出这个选项,因为它是首选 仅将默认行为的更改隔离到BizTalk,而 注册表设置是操作系统的全局设置。