C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VB2005 ソリューションの中にあるXMLファイルの読込


(過去ログ 23 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■9916 / inTopicNo.1)  VB2005 ソリューションの中にあるXMLファイルの読込
  
□投稿者/ VB楽しい (1回)-(2007/11/07(Wed) 11:51:04)

分類:[VB.NET/VB2005] 

現在、XMLファイルを外部(ソリューションエクスプローラに入っていない)
で読込みをしているのですが、管理上面倒なのでソリューションエクスプロ
ーラ内(同一プロジェクト)にXMLファイルを新規で追加して管理をしよう
と思っています。
XMLファイルを外部から読み込む場合には、ファイルパスを指定して簡単に
取得できたのですが、ソリューションへ追加した場合のファイルパス?は
どのようになるのでしょうか。
ファイルパスとかではなく、ソリューションエクスプローラのリストから
取得できるようなクラスが用意されているのでしょうか。

ものすごく初歩的な質問かもしれませんが、調べても全く不明だったので
ご質問させていただきました。
よろしくお願いいたします。
引用返信 編集キー/
■9921 / inTopicNo.2)  Re[1]: VB2005 ソリューションの中にあるXMLファイルの読込
□投稿者/ カンタービレ (13回)-(2007/11/07(Wed) 12:50:23)
No9916 (VB楽しい さん) に返信
> XMLファイルを外部から読み込む場合には、ファイルパスを指定して簡単に
> 取得できたのですが、ソリューションへ追加した場合のファイルパス?は
> どのようになるのでしょうか。
> ファイルパスとかではなく、ソリューションエクスプローラのリストから
> 取得できるようなクラスが用意されているのでしょうか。
> 
ソリューション、というかプロジェクトに追加しただけでは外部ファイルと同じじゃないかと思いマス。
ビルド時の配置場所になっているだけデス。

管理しやすいかどうかは別として、そのXMLが読み込み専用として扱えるならば
ビルドアクションとしてそのXMLを「埋め込まれたリソース」としておき、
GetManifestResourceStreamを利用して実行中のアセンブリから読み込むことは出来マス。

Imports System.Reflection

Dim asm As Assembly = Assembly.GetExecutingAssembly()
Dim sr As New System.IO.StreamReader( _
    asm.GetManifestResourceStream("名前空間.埋め込んだXML名"), _
    System.Text.Encoding.GetEncoding("XMLの文字コード"))

あとはこのストリームをXMLDocumentなどにLoadさせてあげればいいわけデス。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -