【发布时间】:2016-11-18 11:50:15
【问题描述】:
This article 似乎暗示这是可能的,但似乎跳过了集合本身的关键实现。它列出了粗略的结构:
public interface ICoordinate : IElement
{
float Longitude { get; set; }
float Latitude { get; set; }
}
public interface IPlace : IElement
{
string Description { get; set; }
ICoordinate Coordinate { get; }
}
public interface IPlaces : IFacet
{
IElementDictionary<IPlace> Places { get; }
}
正是我需要的对象集合。那么我该如何实现呢?
[Serializable]
internal class Coordinate : Element, ICoordinate
{
private const string LONGITUDE = "Longitude";
private const string LATITUDE = "Latitude";
public float Longitude
{
get
{
return this.GetAttribute<float>( LONGITUDE );
}
set
{
this.SetAttribute( LONGITUDE, value );
}
}
public float Latitude
{
get
{
return this.GetAttribute<float>( LATITUDE );
}
set
{
this.SetAttribute( LATITUDE, value );
}
}
public Coordinate()
{
this.EnsureAttribute<float>(LONGITUDE);
this.EnsureAttribute<float>(LATITUDE);
}
}
这是坐标,Places 呢?如何添加新地点?该文章似乎缺少此信息
【问题讨论】:
-
如果同时回复,为什么还要加问题? :)
-
帮助其他有同样问题的人! @SitecoreClimber It's perfectly valid (and encouraged) to do this。这就是为什么有一个“回答你自己的问题”复选框
-
xDB 官方文档目前缺乏。但是我已经写了许多冗长的博客如何实现这一点以及许多其他有助于的事情 - jonathanrobbins.co.uk/2015/12/08/…
-
这实际上非常有用@JonathanRobbins。我在寻找答案时没有找到这些。
-
哦,很多东西,sitecore facet,facet collection,collection null 等等。我在答案中添加了一个链接
标签: c# content-management-system sitecore