0
首次讀取設置(在設置之前) - 將引發Object reference not set to an instance of an object.
異常。首次使用時的自定義設置類異常(ApplicationSettingsBase)
設置使用DefaultSettingValueAttribute默認值不能在現實情況下,這樣做是因爲它不是一個簡單的類型像我的一個int的例子,不能被描述爲一個字符串。從the docs:
DefaultSettingValueAttribute要求的默認值可以被表示爲一個字符串 。
這應該如何避免?
更多信息:
當然,我可以把它包裝在一個try-catch
塊,但應該留給特殊情況下,而這是很正常的事情 - 誰將會使用該應用程序爲先每個用戶時間會遇到這個。因爲第一次看起來不對,所以每一次都是這樣。
那麼什麼是正確的解決方案?
下面的代碼:
public class MySettings : ApplicationSettingsBase
{
[UserScopedSettingAttribute()]
public int MyInt
{
get { return (int)(this["MyInt"]); } // Object reference not set to an instance of an object.
set { this["MyInt"] = value; }
}
}
喊着這樣:
MySettings s = new MySettings();
int i = s.MyInt;
謝謝。然而,真正的情況是一個複雜的類型,而不是一個'int' - 所以它不能有一個默認值(因爲它不能被描述成一個字符串)。 – ispiro
@ispiro也許試試我編輯的第二個建議? – gmn
我會試試看。我只是檢查,看到除了不是通過調用對象本身... – ispiro