3

受信した xml メッセージの検証に使用するリソース (xsd ファイル) にいくつかのファイルがあります。私が使用するリソース ファイルの名前はAppResources.resxで、 clientModels.xsdというファイルが含まれています。AppResources.clientModels のようなファイルを使用しようとすると、ファイルの内容を含む文字列が取得されます。代わりにストリームを取得したいと思います。私はそれで悪い経験をしたので、assembly.GetManifestResourceStreamを使用したくありません(これらのストリームを使用してSharpZipLibでファイルをアーカイブすることは、何らかの理由で機能しませんでした)。それを行う他の方法はありますか?ResourceManager について聞いたことがありますが、これは役に立ちますか?

4

3 に答える 3

3

おそらく、取得した文字列を System.IO.StringReader にフィードできますか? それはあなたが望むことをするかもしれません。また、MemoryStream も確認してください。

于 2008-12-21T19:00:31.750 に答える
1

リソースとしてzipファイルをロードしましたが、名前空間から直接参照すると、文字列ではなくバイトが返されます。リソースデザイナでファイルを右クリックし、ファイルタイプをテキストからバイナリに変更します。次に、MemoryStreamにロードできるbytearrayを取得します。

于 2009-02-25T23:30:54.460 に答える
1

ここにリンクからのコードがあります

//Namespace reference
using System;
using System.Resources;


#region ReadResourceFile
/// <summary>
/// method for reading a value from a resource file
/// (.resx file)
/// </summary>
/// <param name="file">file to read from</param>
/// <param name="key">key to get the value for</param>
/// <returns>a string value</returns>
public string ReadResourceValue(string file, string key)
{
    //value for our return value
    string resourceValue = string.Empty;
    try
    {
        // specify your resource file name 
        string resourceFile = file;
        // get the path of your file
        string filePath = System.AppDomain.CurrentDomain.BaseDirectory.ToString();
        // create a resource manager for reading from
        //the resx file
        ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(resourceFile, filePath, null);
        // retrieve the value of the specified key
        resourceValue = resourceManager.GetString(key);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        resourceValue = string.Empty;
    }
    return resourceValue;
}
#endregion

元のコードを書きませんでした

http://www.dreamincode.net/code/snippet1683.htm

HTH

骨格

于 2008-12-30T21:50:28.920 に答える