C# 创建自定义个性化规则时出现的问题
以下是我的自定义个性化规则代码:C# 创建自定义个性化规则时出现的问题,c#,sitecore,sitecore8,C#,Sitecore,Sitecore8,以下是我的自定义个性化规则代码: using MyDll.Custom_Classes.Analytics.Facets; using Sitecore.Analytics; using Sitecore.Diagnostics; using Sitecore.Rules; using Sitecore.Rules.Conditions; using System.Linq; namespace MyDll.Custom_Classes.Personalization_Rules {
using MyDll.Custom_Classes.Analytics.Facets;
using Sitecore.Analytics;
using Sitecore.Diagnostics;
using Sitecore.Rules;
using Sitecore.Rules.Conditions;
using System.Linq;
namespace MyDll.Custom_Classes.Personalization_Rules
{
public class AnonymousUserInterestsCondition<T> : StringOperatorCondition<T> where T : RuleContext
{
public string Value { get; set; }
protected override bool Execute(T ruleContext)
{
Assert.ArgumentNotNull(ruleContext, "ruleContext");
Assert.IsNotNull(Tracker.Current, "Tracker.Current is not initialized");
Assert.IsNotNull(Tracker.Current.Session, "Tracker.Current.Session is not initialized");
Assert.IsNotNull(Tracker.Current.Session.Interaction, "Tracker.Current.Session.Interaction is not initialized");
var currentAnonymousUserInterest = string.Empty;
if (Tracker.Current.Contact != null)
{
var interestsFacet = Tracker.Current.Contact.GetFacet<IInterestFacet>(InterestFacet._FACET_NAME);
if (!interestsFacet.Interests.Any())
{
currentAnonymousUserInterest = interestsFacet.Interests[0].InterestedIn;
}
}
return Compare(currentAnonymousUserInterest, Value);
}
}
}
使用MyDll.Custom_Classes.Analytics.Facets;
使用Sitecore.Analytics;
使用Sitecore.Diagnostics;
使用Sitecore.Rules;
使用Sitecore.Rules.Conditions;
使用System.Linq;
命名空间MyDll.Custom_Classes.Personalization_规则
{
公共类AnonymousUserInterestCondition:StringOperator条件,其中T:RuleContext
{
公共字符串值{get;set;}
受保护的覆盖布尔执行(T规则上下文)
{
Assert.ArgumentNotNull(ruleContext,“ruleContext”);
Assert.IsNotNull(Tracker.Current,“Tracker.Current未初始化”);
Assert.IsNotNull(Tracker.Current.Session,“Tracker.Current.Session未初始化”);
Assert.IsNotNull(Tracker.Current.Session.Interaction,“Tracker.Current.Session.Interaction未初始化”);
var currentAnonymousUserInterest=string.Empty;
如果(Tracker.Current.Contact!=null)
{
var InterestFacet=Tracker.Current.Contact.GetFacet(InterestFacet.\u FACET\u NAME);
if(!interestfacet.Interests.Any())
{
currentAnonymousUserInterest=InterestsFace.Interests[0]。InterestedIn;
}
}
返回比较(currentAnonymousUserInterest,值);
}
}
}
我在sitecore类型字段中引用它,如下所示:
MyDll.Custom_Classes.Personalization_Rules.AnonymousUserInterestCondition,MyDll
请参阅下面的屏幕截图:
Sitecore显示类型字段的错误,错误消息为“字段类型包含对不存在类型MyDll的引用。自定义类。个性化规则。匿名用户兴趣条件,MyDll”
我有没有做错什么,或者有没有办法解决这个问题?再次检查拼写是否100%正确。另外,请确保已将DLL部署到网站的bin文件夹中。@jammykam我已验证该DLL及其100%正确性,即使DLL已部署到网站bin。这一问题现已修复。我重命名了名称空间,但其中没有“\”,并在sitecore中更新了类型。它起作用了