小编Dim*_*ima的帖子

如何使用configurationManager从.Net 4.0中的App.config读取值?

我正在.Net 4.0中创建一个Windows服务,并通过引用服务项目来测试Windows窗体客户端的所述服务的一些功能.

服务项目有一个App.config文件,该文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
     <connectionStrings>
       <clear />
       <add name="myLocalMySQLDBUsername" connectionString="username"/>
     </connectionStrings>
  </configuration>
Run Code Online (Sandbox Code Playgroud)

当属于服务的函数调用时:

  • ConfigurationManager.ConnectionStrings( "myLocalMySQLDBUsername").的ConnectionString

抛出空引用错误,因为我的连接字符串未加载.加载的唯一connectionStrings来自位于c:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config中的machine.config文件

如果我为服务创建应用程序范围设置,我可以使用My.Settings.setting - >来获取该设置,因此它不像App.config文件没有被读取.

我的问题是:为什么我的connectionStrings没有从App.config文件加载?

谢谢您的帮助.

更新:

此外,在这一点上,即使是周围的工作也会受到赞赏; 使用app.config的唯一原因是能够使用DpapiProtectedConfigurationProvider加密内容(内容将具有服务和数据库连接的一些用户名/密码值).

我尝试在app.config中手动创建AppSettings部分,但配置管理器也没有读取这些设置(count = 0).

更新2:

根据建议,我尝试手动打开app.config文件,如下所示:

Dim exePath As String = System.IO.Path.Combine(Environment.CurrentDirectory, "ServiceName.exe")

Dim myConfig As Configuration = ConfigurationManager.OpenExeConfiguration(exePath)
Run Code Online (Sandbox Code Playgroud)

所以这是奇怪的部分,当我查看内部,路径是正确的(指向我的app.config)但仍然从machine.config文件加载connectionStrings(我的connectionStrings没有加载)!哎呀

更新3:

好的,我知道了.当从另一个项目(子项)引用项目(父项)时,即使正在使用父项,也会使用子项的app.config.因此,如果我将它们复制到孩子的app.config,我可以显示connectionStrings.当尝试手动打开它时,我的currentDirectory是孩子,而不是父(奇怪的是它没有抛出异常 - 它无法找到配置文件......它只是默默地使用了machine.config ... 那好吧).

谢谢大家的帮助!

c# vb.net windows-services app-config .net-4.0

7
推荐指数
1
解决办法
4万
查看次数

扫描后ZXing双重图像/叠加

我在我的Android应用程序中使用ZXing库,与jar文件完全集成,并出现以下问题:

问题:

扫描条形码后,扫描的图像在实时相机进纸的顶部保持约50%的透明度约1-2秒.

题:

有没有办法让扫描图像显示为0%透明度,而不是奇怪的叠加?或者,甚至更好,它可以显示自定义片段吗?

谢谢.

代码:[没有相关部分]

public static void initiateScan(Fragment fragment) {
    IntentIntegrator ii = new IntentIntegrator(fragment);
    DisplayMetrics dm = fragment.getResources().getDisplayMetrics();
    ii.addExtra("SCAN_WIDTH", dm.heightPixels);
    ii.addExtra("SCAN_HEIGHT", dm.widthPixels / 4);
    ii.addExtra("SCAN_MODE", "ONE_D_MODE");

    List<String> c = new ArrayList<String>();
    c.add("CODE_39");

    ii.initiateScan(c, -1);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode==IntentIntegrator.REQUEST_CODE) { // scan from ZXing
        String raw_vin=null;
        String vin = null;
        boolean success=false;

        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, 
                                resultCode, data);
        if(result!=null)
        {
            String content = result.getContents();
            if(content!=null)
            {
                raw_vin=content; …
Run Code Online (Sandbox Code Playgroud)

android barcode zxing

5
推荐指数
1
解决办法
802
查看次数

标签 统计

.net-4.0 ×1

android ×1

app-config ×1

barcode ×1

c# ×1

vb.net ×1

windows-services ×1

zxing ×1