如何指定.NET程序运行时需要读取的配置文件路径

如何指定.NET程序运行时需要读取的配置文件路径,第1张

WCF和EF都需要配置文件,而且默认的名字都是app.config,在程序中,无需我们处理配置文件(比如读XML文件,然后获取节点信息),在WCF的Host端和EF里面只需如下的两段代码,.NET能自动获取app.config的内容:// WCF工程using (var host=new ServiceHost(typeof(Server.Settings.Configration))) { host.Open()Console.WriteLine("WCF服务已经启动,按任意键终止……")Console.Read()} // EF工程using (var context=new SettingsEntities()) { } 但是塌迟扒!如果把app.config重命名为other.config(或其它名字,但内容不变),程序将无法正常运行,它会告诉你找不到配置文件。 请问如何使用任意名称的配置文件,同时代码简洁,最好不要直接 *** 作XML文件。我知道.NET中有个类叫 System.Configuration.ConfigurationManager,但不知道如何用在WCF或EF的配置读取中。而且ConfigurationManager也只是方便的读取XML而已。我希望ServiceHost或ObjectContext有这样一个属性:string filePath = "otherName.config"****.ConfigurationFilePath = filePath当然,如果能指定程序运行旦帆时要读取的配置文件,更团昌好。

① 那是由于windows的工作机制造成的,启动组里面的工作目敏腊录被设置成windows\system32,而你的是64位桥败滑 *** 作系统,系统把这个映射到了syswow64下。

② 可以通过设置SetCUrrentDirectory来修正这个问题,例如:

    TCHAR szPath[MAX_PATH] 

    

    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )

    {

        printf("GetModuleFileName failed (%d)\n", GetLastError()) 

        return FALSE

    }

 枯迹   PathRemoveFileSpec(szPath)

    SetCurrentDirectory(szPath)

你的配置文件是要你来写的么?具体格式是形如:

student 200120022003

teacher 100110021003

这样的?

如果是以上格式的,可以通过读取配置文件,然后以数组形式处理,结果数组为key=>value的形式。

下面的代码使用于配置文件每行key的结束以teacher 100110021003没有分号结束的,如果有分号就亩镇派表示这个key还没结束。

//读取文件就省了..

$config='

student 200120022003

2004

teacher 100110021003

'

$temp=array()

$newarr=array()

$arr=explode("\n",$config)

$count=count($arr)

for($i=0$i<$count$i++){

if(strlen($arr[$i])!=1){//跳过长度小于等于1的行

if(strstr($arr[$i],' ')&&preg_match('/|;$/i',$arr[$i])){ //以结尾表示这个key有两行

$newstr=str_replace("\n","",$arr[$i].$arr[$i+1]) //将下一行的字符串连接到这一行同时去除换行(不迅贺知道为啥打印结果的时候还是有换旅陵行~)

$i++ //跳过下一行没有key的

}else{

$newstr=$arr[$i]

}

$temp=explode(' ',$newstr)

if(is_array($temp)){

$newarr[$temp['0']]=$temp['1']

}

}

}

print_r($newarr) //newarr格式为key=>value


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12249937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存