2011-10-31 88 views
0

我想要做的是在c#codebehind中编写一个方法来读取基于密钥的文本。 现在我whant为只使用一种语言,这就是为什么我不需要使用System.Globalization.CultureInfo读取资源文件的方法

private ResourceManager rm; 
private ResourceReader rr; 
public string GetCurrentLanguage(string key) 
{ 
    rm = new ResourceManager("~/App_GlobalResources/textFile", System.Reflection.Assembly.GetExecutingAssembly()); 
    string result = rm.GetString(key).ToString(); 
    return result; 
} 

做到这一点,但它不工作:( 时,我喜欢写东西litWelcome.Text = GetCurrentLanguage("Welcome");它的回报错误。

人有知道什么是我做错了吗?

感谢提前:)

编辑

确定我得到它我自己,这是我的问题的解决方案:

public string GetCurrentLanguage(string key) 
{ 

    string result = Resources.textFile.ResourceManager.GetString(key).ToString(); 
    return result; 
} 

感谢所有帮助:)

+2

“它不能正常工作” 是没有问题的一个很好的说明。发生了什么? –

+0

你想做什么?这个文件是用来存储某种设置的吗? – neeKo

回答

1

也许你会寻找Using Resources for Localization

我知道这不是您的问题的直接答案,但也许这是您正在寻找的解决方案。此链接将为您提供有关如何在ASP.NET中使用内置支持来本地化您的网站的信息。

+0

我看到之前我写在这里。我想这样做,但在代码后面用我的方法,这将返回字符串与文本将从.resx文件0123. – harry180

0

此行是否正确?

rm = new ResourceManager("~/App_GlobalResources\textFile" 

您编辑注释显示:

文件是在〜\ App_GlobalResources文件\ textFile.resx

你斜线并不一致。这是你的文章中的错字,还是你的代码?

+0

我得到这个错误: 找不到适合指定的文化或中性文化的任何资源。确保在编译时“〜/ App_GlobalResources/textFile.resources”已正确嵌入或链接到程序集“App_Code.f05e1x5g”中,或者确保所有需要的附属程序集均可加载且完全签名。 – harry180

0

尝试:

GetGlobalResourceObject全球资源。

GetLocalResourceObject本地资源。

EX:

Button1.Text = GetLocalResourceObject("Button1.Text").ToString(); 
Image1.ImageUrl = CType(GetGlobalResourceObject("WebResourcesGlobal","LogoUrl"), String) 

更多信息检查http://msdn.microsoft.com/en-us/library/ms227982.aspx