当前位置:编程学习 > C#/ASP.NET >>

关于获取当前目录配置文件的问题

在底层组件中,我需要访问系统的配置文件(自定义的Config文件),需求要求不关心以后系统是运行在Web应用还是Win Form应用下。如果在WinForm应用下可以通过Assembly获取当前组件(Dll文件)的目录,然后获取此目录下Config文件,来读取系统的配置。但是在Web应用下获取的是Aspx的临时目录,请教一下如果保证Web应用下也能获取当前Dll的目录?
请注意的是,这个Dll应该是不关心以后的应用,因此无法在组件中使用Server.MapPath方法
谢谢
--------------------编程问答-------------------- System.Web.HttpContext.Current.Request.PhysicalApplicationPath

还可以在你的底层组件中设置参数,然后调用组件的时候传路径进去好了 --------------------编程问答-------------------- 或者直接用ConfigurationSettings取配置文件中的信息能不能满足你的需求。
win和web都是用ConfigurationSettings的吧 --------------------编程问答-------------------- System.Web.HttpContext.Current.Request.PhysicalApplicationPath
使用比较困难啊,我不能从Aspx就开始一直传递这个参数的,不能每new class都要带这个参数 --------------------编程问答-------------------- e --------------------编程问答-------------------- 用ConfigurationSettings不行吗? --------------------编程问答-------------------- 还有就是参考log4net.dll这样的组件。

专门为你的底层组件写个读取配置的类,这个类继承IConfigurationSectionHandler。

然后在config文件中添加节点配置,如下面的例子:
  <configSections>
    <section name="ApplicationLogConfig" type="ApplicationLog.ApplicationLogConfig,ApplicationLog"/>
  </configSections>

  <ApplicationLogConfig>
    <!-- 是否写文本log -->
    <add key="ApplicationLog.Log.Enabled" value="true" />
    <!-- 文本log路径 -->
    <add key="ApplicationLog.Log.FileName" value="C:" />
    <!-- 是否写系统log -->
    <add key="ApplicationLog.EventLog.Enabled" value="true" />
    <!-- 系统log机器名 -->
    <add key="ApplicationLog.EventLog.MachineName" value="." />
    <!-- 系统log来源 -->
    <add key="ApplicationLog.EventLog.SourceName" value="ApplicationLog" />
  </ApplicationLogConfig>
</configuration> --------------------编程问答-------------------- 这样就可以不管是web.config还是APP.config都是一样的读取方式。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,