.NET使用资源文件
1、首先新建工程
2、添加资源文件,InfoDesciption.resx
3、添加信息到资源文件,如图所示
4、读取资源文件信息
下面分别介绍asp.net 和 windows应用程序读取资讯文件的方法:
asp.net 在.NET2.0中读取资源文件很简单
code:
using
System.Reflection;
using System.Resources;
// 获取描述信息
protected string GetDescription( string strKey)
{
if ( ! String.IsNullOrEmpty(strKey))
{
return GetGlobalResourceObject( " InfoDesciption " , strKey);
}
else
{
return null ;
}
}
using System.Resources;
// 获取描述信息
protected string GetDescription( string strKey)
{
if ( ! String.IsNullOrEmpty(strKey))
{
return GetGlobalResourceObject( " InfoDesciption " , strKey);
}
else
{
return null ;
}
}
String str = GetDescription("BCL收听报告");
得到的结果为:“中国收音机网内部的BCL收听报告”
如果只需获取单个对应的值:
则可以用 Resources.InfoDescription.BCL收听报告 取得;
在windows应用程序下读取资源文件则稍微麻烦点,可能会遇到几种问题,如:
”未将资源嵌入或链接到程序集“,”流不是有效的资源文件“等等。
具体解决办法:
using
System.Resources;
using System.Reflection;
Assembly assembly = Assembly.GetAssembly(Type.GetType( " Test_RSS.MyService " )); // Test_RSS是命名空间,MyService是类名
ResourceManager rm = new ResourceManager( " Test_RSS.InfoDescription " , assembly); // InfoDescription是资源文件名
String str = ( string )rm.GetObject( " BCL收听报告 " );
protected string GetDescription( string strKey)
{
string str = null ;
Assembly thisAssembly = Assembly.GetAssembly(Type.GetType( " Test_RSS.MyService " ));
ResourceManager rm = new ResourceManager( " Test_RSS.InfoDescription " , thisAssembly);
if (rm.GetObject(strName) != null )
{
str = ( string )rm.GetObject(strKey);
}
}
using System.Reflection;
Assembly assembly = Assembly.GetAssembly(Type.GetType( " Test_RSS.MyService " )); // Test_RSS是命名空间,MyService是类名
ResourceManager rm = new ResourceManager( " Test_RSS.InfoDescription " , assembly); // InfoDescription是资源文件名
String str = ( string )rm.GetObject( " BCL收听报告 " );
protected string GetDescription( string strKey)
{
string str = null ;
Assembly thisAssembly = Assembly.GetAssembly(Type.GetType( " Test_RSS.MyService " ));
ResourceManager rm = new ResourceManager( " Test_RSS.InfoDescription " , thisAssembly);
if (rm.GetObject(strName) != null )
{
str = ( string )rm.GetObject(strKey);
}
}
OK!