欢迎光临
我们一直在努力

几个开源项目配置信息的存储和处理的方式-ASP教程,ASP应用

建站超值云服务器,限时71元/月

首发于几个开源项目配置信息的存储和处理的方式

最近在看duwamish7,asp.net forums, dottext几个优秀的开源(微软官方)的项目

因我目前所处的技术水平的阶段的原因,我看这些项目程序,更加关注的是具体的实现

次之才是架构

比较第一篇:几个开源项目实体层实现方式比较

这次的关注点是它们存储和处理配置信息的不同方式

一,duwamish7和asp.net forums

这两者处理方式有相同之处,都是通过实现iconfigurationsectionhandler来实现配置类

配置类的代码如下:

public class duwamishconfiguration : iconfigurationsectionhandler

{

private static string dbconnectionstring ;

private static bool enablepagecache ;

iconfigurationsectionhandler 成员#region iconfigurationsectionhandler 成员

public object create(object parent, object configcontext, system.xml.xmlnode section)

{

namevaluecollection settings ;

try

{

namevaluesectionhandler basehandler = new namevaluesectionhandler() ;

settings = (namevaluecollection)basehandler.create(parent,configcontext,section) ;

}

catch

{

settings = null ;

}

if (settings != null)

{

dbconnectionstring = (string)settings["dbconnectionstring"] ;

enablepagecache = convert.toboolean(settings["enablepagecache"]) ;

}

return settings ;

}

#endregion

public static string connectionstring

{

get { return dbconnectionstring ; }

}

public static bool enablepagecache

{

get { return enablepagecache ; }

}

}

web.config如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configsections>

<section name="duwamishconfiguration" type="duwamish7.common.duwamishconfiguration, duwamish7.common" />

</configsections>

<duwamishconfiguration>

<add key="dbconnectionstring" value="server=localhost;user id=duwamish7;password=password;database=duwamish7;connection reset=false" />

<add key="enablepagecache" value="true" />

</duwamishconfiguration>

<system.web>

<compilation debug="true" />

</system.web>

</configuration>

然后就可以duwamishconfiguration.connectionstring获得数据库连接,duwamishconfiguration.xxxx获得你定义的其他

数据了,不过这样用之前,需要先调用这个方法哦

system.configuration.configurationsettings.getconfig("duwamishconfiguration") ;

通常这个方法会放在global.asa的application_start事件处理中,或者自己定义的

httpmodule的application_start类似事件中

关于duwamish7配置信息处理的更多信息,可以参考:

duwamish深入剖析-配置篇

由duwamish学习web.config的配置

二,dottext配置信息的存储和处理

dottext配置信息不是放在web.config,而是放在一个自己定义的blog.config文件中:

<?xml version="1.0" encoding="utf-8" ?>

<blogconfigurationsettings xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">

<connectionstring>data source=kwk;database=blog;uid=sa;pwd=sa;</connectionstring>

<enablepagecache>true</enablepagecache>

</blogconfigurationsettings>然后通过串行化的方式获取数据,先定义对应的类: [serializable]

public class blogconfigurationsettings

{

private string _connectionstring ;

public string connectionstring

{

get { return _connectionstring ; }

set { _connectionstring = value ; }

}

private bool _enablepagecache ;

public bool enablepagecache

{

get { return _enablepagecache ; }

set { _enablepagecache = value ; }

}

}

然后可以通过如下方法获得这些配置类对象: public static blogconfigurationsettings instance(httpcontext context)

{

//在实际的应用中,别忘了加上缓存

string filepath = context.server.mappath("~/blog.config");

settings = (blogconfigurationsettings)loadserializedobject(typeof(bookconfigurationsettings),filepath);

return settings;

}

public static object loadserializedobject(type type, string filename)

{

filestream fs = null;

try

{

// open the stream

fs = new filestream(filename, filemode.open,fileaccess.read);

xmlserializer serializer = new xmlserializer(type);

return serializer.deserialize(fs);

}

catch(exception e)

{

throw e;

}

finally

{

if(fs != null)

fs.close();

}

}

至于孰优孰劣,那就看具体的应用了,这个是见人见智的问题了

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 几个开源项目配置信息的存储和处理的方式-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章