我有一个.NET类库,它提供了一组由多个Web服务使用的辅助函数.此类库必须存储单个设置,特别是连接字符串,Web服务本身无需查看,因为它们都必须查询相同的数据库.
不幸的是,.NET没有提供轻松读取DLL app.config
文件的方法.唯一的"简单"解决方案是将连接字符串存储在每个 Web服务配置文件中,这完全是bollocks.
通常,我关心代码优雅,但这次我真的需要一个解决方案,即使它是一个黑客.有没有办法让.NET类库有自己的配置?
编辑:从技术上讲,我可以将所有这些Web服务合并到一个Web服务中.但是,出于商业原因(每个Web服务将单独出售),我不能这样做.
可能重复:
获取当前程序集的路径
C#:如何获取代码所在程序集的路径?
使用VB 2008,如何从内部获取正在运行的.EXE的文件名?
编辑:这是一个控制台应用程序,所以Application.ExecutablePath
将无法正常工作.
我有C#代码试图LocalPath
使用以下代码行获取正在执行的程序集:
Uri uri = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath;
这段代码适用于各种路径.它开始失败给出正确的AbsolutePath
,Localpath
因为执行的程序集路径包含一个#.
Assembly.GetExecutingAssembly().CodeBase
给 "C:\c#\ExcelAddin1.1.0\GSRExcelPlugin\bin\Debug\Common.dll"
但是新的Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath给出"C:\ c",而它应该给出"C:\ c#\ ExcelAddin1.1.0\GSRExcelPlugin\bin\Debug \".
有没有我需要处理的东西,或者Uri类使用的方式有什么不对吗?
如果这是.net框架问题,我该如何向Microsoft报告此问题?