0

会社の Web サイト用の Silverlight アプリケーションを開発していて、問題が発生しました。

今まではこれをローカルでプログラミングしていましたが、今度はプログラムを Web サイトに公開する必要があります。問題は、FileStream が昇格されたアクセス許可を持つローカル ファイルにしかアクセスできないことです。

コードのスニペットを次に示します。

using (FileStream fileStream = new FileStream(@"E:\Users\LUPUS\Documents\Visual Studio 2010\Projects\Lycaon5\Lycaon5\acids.xdb", FileMode.Open))
 {
using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fileStream, XmlDictionaryReaderQuotas.Max))
  {
    //Read the XML file out.
  }
 }

XmlDictionaryReader リーダーとは何も変更せずに - 相対 Uri からファイルを読み取るにはどうすればよいですか?

どうもありがとう、

ロブ。

Ps 書式設定がないことをお詫びします。穴居人です。方法がわかりません。

4

1 に答える 1

1

コンパイル時にファイルをアセンブリに埋め込みます。次に、それをリソースストリームとして読み取ることができます:http://msdn.microsoft.com/en-us/library/cc296240%28VS.95%29.aspx

Resource(このメソッドが機能するためには、ファイルをタイプとして埋め込んでください)

ファイルストリームを取得するには、コードは次のようになります

Uri uri = new Uri("/MyAssemblyName;component/acids.xdb", UriKind.Relative);
StreamResourceInfo streamInfo = Application.GetResourceStream(uri);
Stream fileStream = streamInfo.Stream;

using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fileStream, XmlDictionaryReaderQuotas.Max))
{
    //Read the XML file out.
}

編集:Tim Sが指摘したように、これはデータファイルが静的でコンパイル時に修正されている場合にのみ有効です。それ以外の場合は、他の方法を使用して、(彼がリンクしている)Webサイトからファイルをダウンロードできます。

于 2012-06-30T21:05:54.800 に答える