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中更新了类型。它起作用了