Dotnet 2.0配置系统
生活随笔
收集整理的這篇文章主要介紹了
Dotnet 2.0配置系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天使用VS2005開發一個Windows服務,發現dotnet2.0的配置系統相對于1.x的功能變化很大。記錄下來同各位共享。
.NET Framework 1.1 提供一個基本的應用程序配置機制,以允許您定義應用程序配置文件中的只讀應用程序設置。您可以通過System.Configuration.AppSettings類來訪問這些設置,該類通過鍵來檢索設置,并且返回一個必須轉換為合適類型的弱類型對象。此機制對于簡單情況而言是非常有用的,這些簡單情況專注于一般只能由管理員修改的相對靜態的數據。但是,許多其它應用程序配置的情況要求有一個更強大、更靈活的解決方案。.NET Framework 2.0 和 Visual Studio 2005 為 Windows 窗體應用程序提供了一個新的配置系統。該系統解決了先前解決方案的限制,并且引入了許多新概念,使您感受到更完整、更有效的設計時體驗和更加個性化的最終用戶體驗。 配置設置該配置系統對配置設置的定義、讀取以及寫入提供了更強大的支持。每個設置均按其名稱、數據類型、作用域、默認值以及可訪問性進行定義。所有的設置都是強類型的,并且您可以指定任何可序列化的類型。該配置系統支持許多持久化設置值的機制,包括字符串表示、XML 序列化以及二進制序列化。還可以將設置定義為如下兩個作用域之一:用戶或應用程序。應用程序設置是只讀的,并且其值由計算機上此應用程序的所有用戶共享。默認情況下,這些值存儲在應用程序配置文件中。下面是一些配置設置的示例: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="BigTeam.WindowsService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections> <applicationSettings> <BigTeam.WindowsService.Properties.Settings> <setting name="BigTeam_WindowsService_JoinJobService_SecurityService" serializeAs="String"> <value>[url]http://localhost/BigTeam.Security/SecurityService.asmx</value>[/url] </setting> <setting name="IntervalMinutes" serializeAs="String"> <value>5</value> </setting> </BigTeam.WindowsService.Properties.Settings> </applicationSettings> </configuration> 包裝類配置系統需要您使用包裝類來訪問存儲于配置存儲中的設置。這些包裝類向配置系統提供了強類型的接口,并且提供了完整描述每個設置的元數據。這就允許包裝類的用戶無需直接訪問配置文件就可以理解每個設置的配置方式。 注您應該了解,配置系統是通過一個可插入的體系結構來連接設置存儲的。最初,系統只支持配置文件中的存儲設置,但是最后會支持許多潛在的設置存儲。 下面是先前顯示的設置的包裝類: namespace BigTeam.WindowsService.Properties {??? [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {??????? private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] [global::System.Configuration.DefaultSettingValueAttribute("[url]http://localhost/BigTeam.Security/SecurityService.asmx[/url]")] public string BigTeam_WindowsService_JoinJobService_SecurityService { get { return ((string)(this["BigTeam_WindowsService_JoinJobService_SecurityService"])); } } [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("5")] public string IntervalMinutes { get { return ((string)(this["IntervalMinutes"])); } } } } 在應用程序代碼中使用包裝類來訪問和修改配置設置。例如,下面的代碼用于檢索存儲在名為 BigTeam_WindowsService_JoinJobService_SecurityService用戶設置中的 WebService的URL。BigTeam.WindowsService.Properties.Settings setting = new BigTeam.WindowsService.Properties.Settings();
string urlSettings = setting.BigTeam_WindowsService_JoinJobService_SecurityService; //這里可以從配置文件中獲取 IDE支持雖然可以手動創建配置文件和包裝類,但是 Visual Studio 2005 對這兩個任務都提供完全的 IDE 支持。在 Visual C# .NET 中,可以通過右鍵單擊解決方案資源管理器中的項目并選擇“Properties”來訪問設置設計器。在屬性頁列表中,選擇“Settings”。將看到一個設計器,它允許您定義應用程序和用戶設置的所有方面。在設計器中保存更改時,Visual C# 會自動創建并填充相應的配置文件。它還將創建一個包裝類,并通過 Settings 使該包裝類可作為 Settings進行訪問。 自由、創新、研究、探索……
.NET Framework 1.1 提供一個基本的應用程序配置機制,以允許您定義應用程序配置文件中的只讀應用程序設置。您可以通過System.Configuration.AppSettings類來訪問這些設置,該類通過鍵來檢索設置,并且返回一個必須轉換為合適類型的弱類型對象。此機制對于簡單情況而言是非常有用的,這些簡單情況專注于一般只能由管理員修改的相對靜態的數據。但是,許多其它應用程序配置的情況要求有一個更強大、更靈活的解決方案。.NET Framework 2.0 和 Visual Studio 2005 為 Windows 窗體應用程序提供了一個新的配置系統。該系統解決了先前解決方案的限制,并且引入了許多新概念,使您感受到更完整、更有效的設計時體驗和更加個性化的最終用戶體驗。 配置設置該配置系統對配置設置的定義、讀取以及寫入提供了更強大的支持。每個設置均按其名稱、數據類型、作用域、默認值以及可訪問性進行定義。所有的設置都是強類型的,并且您可以指定任何可序列化的類型。該配置系統支持許多持久化設置值的機制,包括字符串表示、XML 序列化以及二進制序列化。還可以將設置定義為如下兩個作用域之一:用戶或應用程序。應用程序設置是只讀的,并且其值由計算機上此應用程序的所有用戶共享。默認情況下,這些值存儲在應用程序配置文件中。下面是一些配置設置的示例: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="BigTeam.WindowsService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections> <applicationSettings> <BigTeam.WindowsService.Properties.Settings> <setting name="BigTeam_WindowsService_JoinJobService_SecurityService" serializeAs="String"> <value>[url]http://localhost/BigTeam.Security/SecurityService.asmx</value>[/url] </setting> <setting name="IntervalMinutes" serializeAs="String"> <value>5</value> </setting> </BigTeam.WindowsService.Properties.Settings> </applicationSettings> </configuration> 包裝類配置系統需要您使用包裝類來訪問存儲于配置存儲中的設置。這些包裝類向配置系統提供了強類型的接口,并且提供了完整描述每個設置的元數據。這就允許包裝類的用戶無需直接訪問配置文件就可以理解每個設置的配置方式。 注您應該了解,配置系統是通過一個可插入的體系結構來連接設置存儲的。最初,系統只支持配置文件中的存儲設置,但是最后會支持許多潛在的設置存儲。 下面是先前顯示的設置的包裝類: namespace BigTeam.WindowsService.Properties {??? [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {??????? private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] [global::System.Configuration.DefaultSettingValueAttribute("[url]http://localhost/BigTeam.Security/SecurityService.asmx[/url]")] public string BigTeam_WindowsService_JoinJobService_SecurityService { get { return ((string)(this["BigTeam_WindowsService_JoinJobService_SecurityService"])); } } [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("5")] public string IntervalMinutes { get { return ((string)(this["IntervalMinutes"])); } } } } 在應用程序代碼中使用包裝類來訪問和修改配置設置。例如,下面的代碼用于檢索存儲在名為 BigTeam_WindowsService_JoinJobService_SecurityService用戶設置中的 WebService的URL。BigTeam.WindowsService.Properties.Settings setting = new BigTeam.WindowsService.Properties.Settings();
string urlSettings = setting.BigTeam_WindowsService_JoinJobService_SecurityService; //這里可以從配置文件中獲取 IDE支持雖然可以手動創建配置文件和包裝類,但是 Visual Studio 2005 對這兩個任務都提供完全的 IDE 支持。在 Visual C# .NET 中,可以通過右鍵單擊解決方案資源管理器中的項目并選擇“Properties”來訪問設置設計器。在屬性頁列表中,選擇“Settings”。將看到一個設計器,它允許您定義應用程序和用戶設置的所有方面。在設計器中保存更改時,Visual C# 會自動創建并填充相應的配置文件。它還將創建一個包裝類,并通過 Settings 使該包裝類可作為 Settings進行訪問。 自由、創新、研究、探索……
轉載于:https://blog.51cto.com/shanyou/75200
總結
以上是生活随笔為你收集整理的Dotnet 2.0配置系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 昨天终于收到《.Net Web服务编程》
- 下一篇: 简单的消息发送小程序