0
無法繼續運行:Why will it always be a null value?我的變量永遠不會被設置
當實例中我PageStyle.GetInstance().StartItem = MyWantedStartItem;
起始物品保持爲空並沒有得到更新,使我的課無法使用。這反過來返回一個項目不能爲空錯誤。
我再次想知道爲什麼會發生這種情況,我能做些什麼來解決它?有沒有更好的方式來做到這一點?
類訪問對象:
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;
}
你的代碼和作者的代碼沒有區別。他們都會有同樣的問題。我懷疑** item **爲null的原因是因爲webDB.Items [value]; ** ** null ** –
您的權利,但'PageStyle.GetInstance()。StartItem'的步驟已經在我的代碼中。項目設置的方式無法實現,因此'value'設置爲null。 – Anicho
我現在看到問題所在,解決了問題。 – Anicho