うなまな Blog

VB覚え書き

AILight Banner
AILight Blog

プロフィール

うなまな Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

app.configは共有できたんだ・・・

app.configは共有できたんだ・・・

○ソリューション
 │
 ├○ClassLibrary1
 │ ├My Project
 │ ├app.config
 │ └Class1.vb
 │
 └○WindowsApplication1
   ├参照設定:ClassLibrary1
   ├My Project
   ├app.config
   └Form1.vb

上のような構成のソリューションをビルドした場合、

ClassLibrary1.dll
WindowsApplication1.exe
WindowsApplication1.exe.config

が作成されるけど、ルート名前空間が同じで、アプリケーション設定の名前が同じだったら、
ClassLibrary1もWindowsApplication1.exe.configを参照するんだ・・・知らなかった。


名前空間が違っても参照できるんですね。えらく悩んでしまった。

投稿日時 : 2006年8月21日 16:43


コメントを追加

#  re: app.configは共有できたんだ・・・ 2006年8月21日 17:04 小野@どっとねっとふぁん

いや、App.Configはexe起動時に読み込まれるものなので、WindowsApplication1が読み込んだ内容を、そこから呼ばれるクラスファイルも同じく使う、ということだと思います。
共有できる、というより、強制的にexeのほうにある情報が使われる、ということじゃないかと。

#  re: app.configは共有できたんだ・・・ 2006年8月21日 18:00 うなまな

共有という言い方は悪かったかも知れませんね。

○ソリューション
 │
 ├○ClassLibrary1
 │ ├My Project
 │ ├app.config(1)
 │ └Class1.vb
 │
 └○WindowsApplication1
   ├参照設定:ClassLibrary1
   ├My Project
   ├app.config(2)
   └Form1.vb

DLL側でDB接続を行うのに接続文字列として、(1)の設定情報"SettingConnection"を利用すると、
My.Settings.SettingConnection
(VB特有のMyですが・・・)
となりますが、実際に運用する場合には、WindowsApplication1.exe.configは、(2)で生成されてしまい、
接続文字列を変更できなくなってしまうと言う事です。(名前空間が違っている場合かな)

>共有できる、というより、強制的にexeのほうにある情報が使われる、ということじゃないかと。
ですね。色々分からない事がありますので、教えてくださ~い・・・と甘えてみる。

#  re: app.configは共有できたんだ・・・ 2006年8月22日 23:12 菊池

exeと接続を別にしたいのであれば HogeConnectionとか、HageConnectionとか、設定値の名前を変えておけばいいんじゃありません?

そういうことではない?

#  re: app.configは共有できたんだ・・・ 2006年8月23日 9:02 うなまな

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WindowsApplication1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="ClassLibrary1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
  ・
  ・
  ・
  ・
<applicationSettings>
<WindowsApplication1.My.MySettings>
<setting name="Setting" serializeAs="String">
<value>HogeHogeHoge</value>
</setting>
</WindowsApplication1.My.MySettings>
<ClassLibrary1.My.MySettings>
<setting name="Setting" serializeAs="String">
<value>TekeTekeTeke</value>
</setting>
</ClassLibrary1.My.MySettings>
</applicationSettings>
</configuration>

上記は設定情報が文字列ですが、こういう事がいいたかっただけなんですが・・・
言葉で説明するのが難しいというか、下手というか・・・
タイトル
名前
URL
コメント