首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP .NET中从服务器组件访问资源

在ASP .NET中从服务器组件访问资源
EN

Stack Overflow用户
提问于 2010-09-09 15:17:18
回答 1查看 395关注 0票数 1

我是ASP .NET开发这门艺术的初学者,所以如果这是一个愚蠢的问题,请原谅我。在用谷歌搜索了一下之后,阅读了一下(其中一些...)ASP .NET 3.5发布后,我还没有找到一种方法来做我想做的事情--这通常意味着我正在尝试做一些愚蠢的事情,或者很明显我错过了它:)

我正在创建一个服务器控件,用于我公司正在开发的多个站点。它没什么特别的,只是一个标准的你可以编辑和创建用户的控件。

这样做自然需要本地化一些文本。

对我来说,这样做的自然方式是以某种约定命名的全局资源,然后包括服务器控件的项目可能会填充本地化数据。

但是,在我的组件中访问这些资源时遇到了一些问题。

在项目A的App_GlobalResources文件夹中创建了一个名为CreateOrEditUserControl.da.resx的资源文件(旁注:我是否需要将App_GlobalResources文件夹添加到web配置文件中?)。项目A包含来自项目B并通过程序集引用加载的CreateOrEditUserControl。CreateOrEditUserControl.da.resx包含映射到字符串Brugernavn的键UserName (正如您可能已经猜到的,这只是一个丹麦本地化)。

在我的CreateChildControls()方法的控件中(因为这里我需要本地化的字符串),我尝试通过以下方式访问资源:

代码语言:javascript
复制
HttpContext.GetGlobalResource("CreateOrEditUserControl","UserName");
HttpContext.GetGlobalResource("CreateOrEditUserControl.da","UserName");
HttpContext.GetGlobalResource("CreateOrEditUserControl.da.resx","UserName");
HttpContext.GetLocalResource("CreateOrEditUserControl.da.resx","UserName");

前三个返回null,最后一个抛出异常,因为我没有从我的组件中访问所述资源的权限,这似乎是合乎逻辑的。

到目前为止,我不得不求助于"hack",您可以在querystring中指定语言,然后我手动插入字符串。然而,这是不可取的,因为任何更改都需要更改组件,而不仅仅是用户...

做这件事的正确方法是什么-如果有的话?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2010-09-09 19:09:41

对我来说,这样做的自然方式是一个全局资源,以某种约定命名,然后包括服务器控件的项目可以用本地化的数据填充它。

我对ASP.Net几乎一无所知,但如果我有共同的控件可以在不同的页面或各种应用程序中使用,我会在这个控件中包含可翻译的资源。这样,您就不必为每个项目本地化它,而只需本地化一次。我非常确定这在ASP.Net中是可能的。

至于访问全局资源(再次抱歉,我的知识有限),您可能必须使用ResourceManager或ResourceReader。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3674514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档