- PR -

構成ファイルの参照

1
投稿者投稿内容
うりぼう
会議室デビュー日: 2004/08/25
投稿数: 12
投稿日時: 2004-10-04 14:55
-------------------------------------------------------
[OS]Windows2000 Professional SP4
[VS]VisualStudio.NET2003
[言語]VB.NET
-------------------------------------------------------
構成ファイルの参照に関する質問です。

現在、「コンソールアプリ」と「Windowsアプリ」の
両方から使用されるライブラリ(DLL)を作成しています。

ライブラリ中で使用するアプリ固有情報(パスやファイル名等)を
構成ファイルにもち、引数やグローバル変数を使用せずに
ライブラリ中でその値を参照したいのですが、
ライブラリから直接構成ファイルを参照する方法はありますでしょうか?

要するに、両アプリから使用されるライブラリで参照するアプリ固有情報を
構成ファイルにて一元管理したいということです。

ライブラリ中でConfigurationSettings.AppSettingsを使用しても
参照はできませんでした。

ご存知の方がいましたらご教授ください。
よろしくお願いします。
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2004-10-04 15:30
試してみたところ、問題なく構成ファイルの設定にアクセスできました。
できないとは、どうできなかったのでしょうか?
値がNullになるとか・・・。

アプリごとに構成ファイル名は異なってくるんで、両方から参照される構成ファイルの内容が同じなってないとか・・・。
は考えられませんか?
うりぼう
会議室デビュー日: 2004/08/25
投稿数: 12
投稿日時: 2004-10-04 17:06
言葉足らずですみません。。。

自分が試した方法は、

====================================================================
--------------------------------------------------------------------
[ライブラリ]
Imports System.Configuration

Public Class Class1
Public Shared Sub SampleClass()
MsgBox(ConfigurationSettings.AppSettings("PATH"))
End Sub
End Class
--------------------------------------------------------------------
[コンソールアプリ]
Imports ClassLibrary1

Module Module1
Sub Main()
Class1.SampleClass()
End Sub
End Module
--------------------------------------------------------------------
[Windowsアプリ]
Imports ClassLibrary1

Public Class Form1
Inherits System.Windows.Forms.Form
#Region 略
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Class1.SampleClass()
End Sub
End Class
--------------------------------------------------------------------
[構成ファイル]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="PATH" value="C:\Tmp" />
</appSettings>
</configuration>

--------------------------------------------------------------------
====================================================================

というサンプルを作成して、構成ファイルの作成場所を変えて実行してみた結果が、
それぞれ次の通りとなりました。
(構成ファイルはVSの"新規項目の作成"の「アプリケーション構成ファイル」で
プロジェクトに追加しています)

【構成ファイル作成場所】
1.[コンソールアプリ]に作成
・コンソールアプリ実行:OK
・Windowsアプリ実行:NG

2.[Windowsアプリ]に作成
・コンソールアプリ実行:NG
・Windowsアプリ実行:OK

3.[ライブラリ]に作成
・コンソールアプリ実行:NG
・Windowsアプリ実行:NG

どこか1個所に構成ファイルを作成して、それを両アプリから見れればOKなのですが。


>できないとは、どうできなかったのでしょうか?
>値がNullになるとか・・・。
上記の確認方法でMsgBoxに値が表示されなくなります。
具体的に何が入っているのかはわかりません。
正直、ライブラリのデバッグの仕方がわかりません・・・(無知ですみません^^;)

情報が足りなければ、またご指摘ください。
1

スキルアップ/キャリアアップ(JOB@IT)