C# 获取嵌入式资源

C# 资源文件使用详解

1. 资源文件可以放在项目根目录下,也可以放到项目录的某个文件夹下

2. 资源文件的名称为 程序集的命名空间.文件夹.文件名

例如,工程目录结构如下:

   > WindowsFormsApplication1    //命令空间为 TestNS

      > Properties

      > 引用

      > Folder1

           Test01.xml

     > Test01.xml

     > Test02.xml

 

最后资源名称为:

TestNS.Folder1.Test01.xml

TestNS.Test01.xml

TestNS.Test02.xml

 

3. 调用方法

    Assembly assembly = Assembly.GetExecutingAssembly();

    string[] resNames = assembly.GetManifestResourceNames();  //列出所有资源名称

    

    //获取指定的资源

    using (Stream stream = assembly.GetManifestResourceStream("TestNS.Test02.xml"))

    {

        if (stream != null)  //没有找到,GetManifestResourceStream会返回null

        {

            XmlDocument xml = new XmlDocument();

            xml.Load(stream);

        }

    }

 

转载于:https://www.cnblogs.com/is68/p/5621418.html

C# 中读取资源文件中的值可以通过多种方式实现,具体取决于资源文件的类型以及其在项目中的配置方式。以下是一些常见方法: ### 从全局资源文件中读取值 如果资源文件是全局资源文件(例如 `Resources.resx`),可以通过 `GetGlobalResourceObject` 方法来读取资源值。此方法通常用于 ASP.NET 项目中,其参数包括资源文件类名(不带 `.resx` 扩展名)和键值名: ```csharp object value = HttpContext.GetGlobalResourceObject("Resources", "KeyName"); ``` 其中 `"Resources"` 是资源文件的类名,而 `"KeyName"` 是资源文件中定义的键值名 [^1]。 ### 从本地资源文件中读取值 如果资源文件是特定页面或控件的本地资源文件(例如 `Default.aspx.resx`),可以通过 `GetLocalResourceObject` 方法读取资源值: ```csharp object value = HttpContext.GetLocalResourceObject("/Default.aspx", "KeyName"); ``` 其中 `"/Default.aspx"` 是页面路径,`"KeyName"` 是资源文件中定义的键值名。 ### 从嵌入式资源文件中读取值 如果资源文件是嵌入式资源文件(Build Action 设置为 `Embedded Resource`),可以通过 `Assembly.GetManifestResourceStream` 方法读取资源内容。以下是一个读取嵌入式文本资源的示例: ```csharp using System; using System.IO; using System.Reflection; Assembly assembly = Assembly.GetExecutingAssembly(); string resourceName = "NamespaceName.ResourceFileName.txt"; using (Stream stream = assembly.GetManifestResourceStream(resourceName)) using (StreamReader reader = new StreamReader(stream)) { string content = reader.ReadToEnd(); } ``` 其中 `NamespaceName` 是资源文件所在的命名空间,`ResourceFileName.txt` 是资源文件的名称。 ### 从 `.resx` 文件直接读取值 如果资源文件是以 `.resx` 文件形式添加到项目中的,并且在编译时生成了对应的类文件,可以直接通过生成的类访问资源值: ```csharp string value = Resources.KeyName; ``` 其中 `Resources` 是资源文件的类名,`KeyName` 是资源文件中定义的键值名。 ### 资源文件的构建配置 确保资源文件的 `Build Action` 属性设置为 `Embedded Resource` 或 `Resource`,以便资源文件在编译时正确嵌入到程序集中 [^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值