我正在.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)
当属于服务的函数调用时:
抛出空引用错误,因为我的连接字符串未加载.加载的唯一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 ... 那好吧).
谢谢大家的帮助!
我在我的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)