System.Configuration 命名空间

第九章访问数据

设计计算机的目的是处理数据的,因此,很少有程序不需要访问数据,既可以是读很小的配置文件,还可以是访问一个全面的关系数据库管理系统。在这一章,我们将广泛学习在 F# 中的访问数据。

不管什么时候执行用 .NET 语言写的应用程序,.NET 运行时都会自动检查是否存在配置文件。这个文件的名字与可执行文件名相同,再加上扩展名 .config,文件必须放在与可执行文件相同的目录中。比如, MyApp.exe 的配置文件就是MyApp.exe.config。在 ASP.NET 应用程序中,由于没有可执行文件,配置文件叫 web.config,在这个网站的根目录中。配置文件用来保存设置,改变这些设置不需要重新编译应用程序。一个典型的例子就是数据库的连接字符串。应该注意,不要在配置文件中保存针对某个用户的值,因为,对配置文件的任何修改,都会影响应用程序的所有用户。保存特定用户设置的最好位置是关系型数据库。我们会在本章后面的“ADO.NET”一节讨论更多有关关系数据库访问的内容。

System.Configuration 命名空间提供了很容易的方法来访问配置值,最简单的方法是用ConfigurationManager 访问配置数据。下面的例子演示如何从配置文件中装载简单的键-值对;假设已有下面的配置文件,准备读“MySetting”值:

<configuration>

<appSettings>

<add key="MySetting"value="An important string" />

</appSettings>

</configuration>

下面的代码用 ConfigurationManager 的静态属性 AppSettings 加载设置:

open System.Configuration

// read an application setting

let setting =ConfigurationManager.AppSettings.["MySetting"]

// print the setting

printfn "%s" setting

[

添加配置文件:右击项目,单击添加新建项,在常规模板中,选择应用程序配置文件。默认文件名:App.config。

]

前面代码的运行结果如下:

An important string

注意

要编译这个程序,必须添加对System.dll 的引用。在 .NET 1.1 中访问这些值是用 System.dll 中的 ConfigurationSettings 类型,在 .NET 2.0 中,这个类型仍然保留,但已经不被推荐,最好不用。

键-值对最常用的是保存连接字符串,习惯做法是,把它单独作为一节,有助于和其他配置分隔开来。providerName 属性可以保存有关连接字符串应该使用哪一个数据库提供程序的信息;

下面的例子演示如何从配置文件中加载连接字符串“MyConnectionString”:

<configuration>

<connectionStrings>

<add

name="MyConnectionString"

connectionString=" Data Source=server;

Initial Catalog=pubs;

Integrated Security=SSPI;"

providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>

下面的代码通过 ConfigurationManager 类的另一个静态属性 ConnectionString 加载连接字符;这是一个集合,能访问类型 ConnectionStringSettings,它有一个ConnectionString 属性用于访问连接字符串,ProviderName 属性用于访问提供程序:

open System.Configuration

// get the connection string

let connectionStringDetails =

ConfigurationManager.ConnectionStrings.["MyConnectionString"]

// print the details

printfn "%s\r\n%s"

connectionStringDetails.ConnectionString

connectionStringDetails.ProviderName

代码的运行结果如下:

Data Source=server;

Initial Catalog=pubs;

Integrated Security=SSPI;

System.Data.SqlClient

警告

我在配置文件中加上了空格、回车,以增加可读性,这些也作为连接字符串,可以看到这也被输出到控制台了。大多数库函数使用这个连接字符串时都会改正,但是,也有些可能不会改正,因此,在格式化配置文件时要小心。

还可以加载与另外应用程序、网站应用程序相关联的配置文件,甚至是 machine.config,machine.config 保存了在特定机器上 .NET 的默认配置,可以查询、修改并保存这些文件。

下面的例子演示如何打开 machine.config,并枚举其中的各节内容:

open System.Configuration

// open the machine config

let config =

ConfigurationManager.OpenMachineConfiguration()

// print the names of all sections

for x in config.Sections do

printfn "%s"x.SectionInformation.Name

代码的运行结果如下(不同的机器会有不同的结果):

system.data

windows

system.webServer

mscorlib

system.data.oledb

system.data.oracleclient

system.data.sqlclient

configProtectedData

satelliteassemblies

system.data.dataset

startup

system.data.odbc

system.diagnostics

runtime

system.codedom

system.runtime.remoting

connectionStrings

assemblyBinding

appSettings

system.windows.forms

这一节介绍了如何使用配置文件,这是一种特殊的 XML 文件;后面的有一节System.Xml 命名空间,将会介绍如何使用System.Xml 命名空间处理各种的 XML 文件。下一节,我们将将讨论使用 System.IO 命名空间访问文件。

System.Configuration 命名空间

时间: 2024-10-29 19:11:20

System.Configuration 命名空间的相关文章

类库探源——System.Configuration 配置信息处理

按照MSDN描述 System.Configuration 命名空间 包含处理配置信息的类型 本篇文章主要两方面的内容 1. 如何使用ConfigurationManager 读取AppSetting和ConnectionStrings 2. 如何使用自定义 Section,我这里的自定义Section格式为 <SectionName> <services> 服务1的描述信息,供IoC容器使用 服务2的描述信息,供IoC容器使用 ... </services> <

命名空间“System.Configuration”中不存在类型或命名空间名称“ConfigurationManager” 怎么解决?

A:这是没添加引用,你打资源管理的那个管口,在你当前的项目下面有一个引用的结点,你右键点击这个结点,选择添加引用,然后在选项卡的第一页中找到System.Configuration,然后确定就可以了 using Excel A:添加引用-COM组件-找到Excel-添加 -- 出不来就是你没找对或你系统里没有~Microsoft Excel 11.0 Object Library  excel2010:1.项目--菜单 --- 添加引用 ---COM 2.using System.Reflect

命名空间System.Configuration中不存在类型或命名空间名称ConfigurationManager

C#连接数据库时,这是个很常见的错误,我刚开始就直接using System.Configuration;还是没能解决,真相是要手动添加这个程序集的引用,在项目右键添加引用选择System.Configuration即可,如图:

System.ServiceProcess与System.Configuration.Install命名空间的介绍

System.ServiceProcess 命名空间提供用于实现.安装和控制 Windows 服务应用程序的类.服务是长期运行的可执行文件,其运行没有用户界面 System.ServiceProcess 命名空间 System.ServiceProcess 命名空间下10个类的列表 windows 服务开发和windows install开发 C# VS 2010创建.安装.调试 windows服务(windows service) C#中的DllImport使用方法 关于dllimport的使

详解System.Data 命名空间

学习了面向对象的设计思想,我们的就应该明白分层的用法.通过机房重构和牛腩的学习我们对数据库已经掌握了一定的技能,System.Data已经是我们的老朋友了,但是我们对他又了解多少呢?下面让我们认真的了解一下System.Data命名空间.System.Data这个命名空间中又有很多的命名空间,我们最常用的就是System.Data.SqlClient,这个命名空间中有很多我们总是遇到的类,比如:SqlCommand.SqlConnection.SqlDataAdapter.SqlDataRead

System.IO 命名空间

System.IO 命名空间的主要目的是为了提供方便访问操作系统的文件和目录类型,另外,也提供写内存和网络流的方法. 这个命名空间提供主要两种方法处理文件和目录,能够使用FileInfo 和 DirectoryInfo 对象获得或修改文件和目录的信息:也能够用File 和 Directory 类实现相同的功能,但是两者都要求传入的文件名为静态成员.通常,如果想要获得文件系统对象的某一项信息,用 File 和 Directory 类:如果想要获得一个文件系统对象的多项信息,用 FileInfo 和

System.Xml 命名空间

XML 已经成为一种流行的数据格式,其原因很多,对于大多数人来说,这是一种很方便表示数据的格式,文件有可读性.程序员的处理文件既有非结构化的,即不遵循一种模式,或者是结构化的,即数据符合 XSD 架构定义的约定:还希望方便地用 XPath 查询数据,即,为了处理一种新的数据格式而编写自定义的解析程序,很少需要,文件可以在不同的 XML 格式之间快速转换,用强大的 XSLT 语言转换数据. System.Xml 命名空间处理 XML 文件的类所有的方法很多,有这里描述的,但不止这些,我们将学习的方

System.Configuration引用后ConfigurationManager方法用不了

System.Configuration引用后ConfigurationManager方法却用不了,提示没有引用 需手动添加引用 项目-引用-右击-添加引用-找到System.Configuration-确定 问题解决 转之 http://blog.csdn.net/isbnhao/article/details/7865496

背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 其它 通过 Windows.System.Profile 命名空间下的类获取信息 查找指定类或接口的所在程序集的所有子类和子接口 示例1.演示如何通过 Windows.System.Profile 命名空间下的类获取信息Information/ProfileInfo.xaml <Page x:Class="Windows10.Information.ProfileInfo" xmlns="htt