我在我的.NET項目中使用Settings類。我注意到在編輯器中,只有某些類型可用作Settings類中各個屬性的類型。如果我想擁有一個屬性,例如我的代碼或泛型集合中的枚舉屬性,該怎麼辦?我將如何實現?使用複雜類型的設置
我猜我可以在一個單獨的文件中使用部分類機制(因爲設置已經定義爲部分類),但我想看看是否有人同意這一點,如果可能有辦法在編輯器中完成。
我在我的.NET項目中使用Settings類。我注意到在編輯器中,只有某些類型可用作Settings類中各個屬性的類型。如果我想擁有一個屬性,例如我的代碼或泛型集合中的枚舉屬性,該怎麼辦?我將如何實現?使用複雜類型的設置
我猜我可以在一個單獨的文件中使用部分類機制(因爲設置已經定義爲部分類),但我想看看是否有人同意這一點,如果可能有辦法在編輯器中完成。
創建一個新的「設置」文件來添加複雜/用戶定義類型的選擇。 這是一個如何爲一個枚舉。
步驟1。創建設置文件
步驟2。瀏覽型
步驟3。選擇類型(Namespace.TypeName)
步驟4。ただ - 完成
在單獨的文件中作爲部分類的一部分做它是完全可以接受的。
如果你想能夠通過配置文件填充複雜的對象,我會建議使用一些依賴注入框架s.a. Spring.Net。
爲了得到一個自定義的類在列表中顯示,確保它有一個默認的構造函數作爲它的一個建設方案。我很難學會這個
要回答傑弗裏關於是否可以在設置文件中使用通用列表的評論/問題,答案是肯定的。您只需手動編輯Settings xml文件。舉例來說,如果我有下面的類:
public class UrlAlias
{
public string Name { get; set; }
public string BaseUrl { get; set; }
}
我可以通過右擊我的設置文件中創建這些列表,選擇打開方式...
然後選擇XML /文本編輯器,設置「類型」值的完全限定類名,即:
Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]"
全設置的XML會是什麼樣子:
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User">
<Value Profile="(Default)"></Value>
</Setting>
</Settings>
</SettingsFile>
一旦你這樣做了,你應該有一個正確配置的你創建的自定義設置對象列表。
我不確定要正確理解你的問題,主要是關於編輯器的部分和「某些類型可用作類型」的部分,你能澄清它還是改述它? – mbillard 2009-03-02 18:55:51
那麼,如果您在項目中創建了Settings.settings文件,那麼您可以使用編輯器來設置數據類型,名稱等設置。您從樹列表框中選擇一個設置的數據類型。該TreeList框只引用某些類型。我的程序集中的類型不是引用。 – 2009-03-02 20:41:57