Продолжение с: Почему это всегда будет нулевое значение?
Когда I PageStyle.GetInstance().StartItem = MyWantedStartItem;
StartItem внутри экземпляра остается нулевым и не обновляется, что делает мой класс непригодным для использования.Это в свою очередь возвращает элемент не может быть нулевой ошибкой.
Снова я хочу знать, почему это происходит, что я могу сделать, чтобы решить это?И есть ли лучший способ сделать это?
Класс, обращающийся к объекту:
public partial class MainLayout : System.Web.UI.Page
{
public string StartItem;
protected void Page_Load(object sender, EventArgs e)
{
GetStartItem();
SetStartItem();
InitializeCSS();
}
private void GetStartItem()
{
StartItem = Sitecore.Context.Item.Paths.FullPath;
}
private void SetStartItem()
{
PageStyle.GetInstance().StartItem = StartItem;
}
private void InitializeCSS()
{
Body.Attributes.Add("style", "background-color: " + PageStyle.GetInstance().BackgroundColor); // Body background color
}
}
Доступный класс имеет:
private static PageStyle _Instance = null;
// Instantiate variables relating to sitecore item paths.
Database webDB;
Sitecore.Data.Items.Item item;
private string _startItem;
public string StartItem
{
get
{
return _startItem;
}
set
{
_startItem = value;
}
}
// constructor
private PageStyle()
{
this.webDB = Sitecore.Configuration.Factory.GetDatabase("web");
this.item = webDB.Items[StartItem];
}
// Method that gets instance
public static PageStyle GetInstance()
{
if (_Instance == null)
_Instance = new PageStyle();
return _Instance;
}