2017-03-31 32 views
0

我有一個outlook插件,它在插件選項頁面中設置了一些值。有那麼被初始化爲像這樣的設置值的屬性:Outlook插件設置和自動實現的屬性

public string Prop1 { get; } = Properties.Settings.Default.Setting1;

我的問題是如果Properties.Settings.Default.Setting1值通過插件選項頁運行期間更改,將物業反映這一變化?

根據我的理解,它會生成一個隱藏的後臺字段來保存我正在初始化的屬性的值。

所以物業不等同於

public string Prop1 
{ 
    get { 
     return Properties.Settings.Default.Setting1; 
    } 
} 

public string Prop1 
{ 
    get { 
     return hidden_backing_field; 
    } 
} 

這將意味着Prop1不會反映Properties.Settings.Default.Setting1改變的值。

我該如何處理這種情況?每次選項更改時,我是否需要確保重新設置屬性?

在此先感謝您幫助解決我對自動實施屬性的困惑。

回答

1

是的,只有在創建對象時,該屬性纔會初始化一次。爲什麼不簡單地總是返回所需的值?

public string Prop1 
{ 
    get { 
     return Properties.Settings.Default.Setting1; 
    } 
} 
+0

是的,這似乎是最好的方法。我認爲自動實現的屬性不是在這裏使用的正確的東西。 – shenk