0

我在 Episerver 7.5 项目中创建了一个通用处理程序。

在这个处理程序中,我想从PageBase类继承方法。我的代码如下所示:

public class GetMapCoordinates : PageBase, IHttpHandler
{
    public override void ProcessRequest(HttpContext context)
    {
        PropertyCriteriaCollection criterias = new PropertyCriteriaCollection();
        PropertyCriteria criteria = new PropertyCriteria();
        criteria.Condition = CompareCondition.Equal;
        criteria.Name = "PageTypeID";
        criteria.Type = PropertyDataType.PageType;
        criteria.Value = Locate.ContentTypeRepository().Load("HotelDetailPage").ID.ToString();
        criteria.Required = true;

        criterias.Add(criteria);

        PageDataCollection _newsPageItems = Locate.PageCriteriaQueryService().FindPagesWithCriteria(PageReference.StartPage, criterias);
    }

    public new bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

我一直在尝试找到从该类继承的其他类,PageBase但我一直无法找到它。我无法修改PageBase该类,因为它在项目中被锁定为元数据。

还有另一种方法吗?请注意,我说过我不能修改PageBase类并添加构造函数。

4

1 回答 1

0

从昨天开始我就一直在这里,但是在把问题放在这里几分钟后,我找到了答案......

显然,episerver 有一个名为“SimplePage”的类,它继承了 PageBase 类。

   public class GetMapCoordinates : SimplePage, IHttpHandler
    {
        public override void ProcessRequest(HttpContext context)
        {
            PropertyCriteriaCollection criterias = new PropertyCriteriaCollection();
            PropertyCriteria criteria = new PropertyCriteria();
            criteria.Condition = CompareCondition.Equal;
            criteria.Name = "PageTypeID";
            criteria.Type = PropertyDataType.PageType;
            criteria.Value = Locate.ContentTypeRepository().Load("HotelDetailPage").ID.ToString();
            criteria.Required = true;

            criterias.Add(criteria);

            PageDataCollection _newsPageItems = Locate.PageCriteriaQueryService().FindPagesWithCriteria(PageReference.StartPage, criterias);
        }

        public new bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
于 2014-09-26T08:17:33.720 回答