我正试图使用一个名为AddValidationErrors的外部类库方法来消除业务规则生成器中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在业务规则生成器中测试我的策略时,这是有效的。但当我尝试编排时,它的规则不会被触发。有人能帮我吗。以下是我的验证错误代码
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;
}
您是否启用了对.NET的BRE静态支持?
要启用BRE对静态.Net方法的支持,请在以下注册表路径中添加一个名为StaticSupport
、值为1
的REG_DWORD
项:
32位Windows
HKEY_LOCAL_MACHINESoftwareMicrosoftBusinessRules3.0
64位Windows
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftBusinessRules3.0
这是一次性活动。
以上信息来自本博客。
MSDN摘录添加:
另一个选项是将StaticSupport放在BTNTsvc[64].exe.config中文件,因为这里的任何设置都会覆盖注册表中的内容。进一步的人们也可以提出这样的论点,即这个选项是首选的,因为它仅将默认行为的更改隔离到BizTalk,而注册表设置是操作系统的全局设置。