加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 我可以在卫星装配中组合本地资源吗?

发布时间:2020-12-16 00:12:40 所属栏目:asp.Net 来源:网络整理
导读:我有很多当地的资源文件 /Controls/App_LocalResources/SomeControl.ascx.resx, /Pages/App_LocalResources/SomePage.aspx.resx等 我想添加另一种语言,我不想浏览所有文件夹并添加SomeControl.ascx.de.resx文件,然后必须重新编译整个思考. 我想使用附属程序
我有很多当地的资源文件

> /Controls/App_LocalResources/SomeControl.ascx.resx,
> /Pages/App_LocalResources/SomePage.aspx.resx等

我想添加另一种语言,我不想浏览所有文件夹并添加SomeControl.ascx.de.resx文件,然后必须重新编译整个思考.

我想使用附属程序集并将所有文件嵌入到MyWebPage.de.dll之类的内容中

这在VS2003版本中可用于全局资源,但我不确定我能否在VS2008版本中为本地资源执行此操作?

我正在使用以下语法访问资源:

<asp:label id="lblSomething" runat="server" meta:resourcekey="labelFirstName"/>

解决方法

您是否正在寻找VS2008的功能或ASP.NET框架的功能,您的问题并不十分明确.所以我会选择代码解决方案.

您正在使用的隐式绑定语法使用ASP.NET的默认LocalResourceProvider,它接受资源所在的页面路径以计算要加载的资源.如果您的资源存储在其他地方,并且您仍希望在前面的代码中使用隐式绑定systax,则需要使用自己的Provider.听起来很复杂,但它相当简单.

要做到这一点,你需要首先继承ResourceProviderFactory

并覆盖两者

IResourceProvider CreateGlobalResourceProvider(string classKey)
IResourceProvider CreateLocalResourceProvider(string virtualPath)

…然后实现您自己的IResourceProvider,它使用ResourceManager从您的附属程序集获取资源

public interface IResourceProvider
{
     object GetObject(string resourceKey,CultureInfo culture);
     IResourceReader ResourceReader { get; }
}

然后,您需要向web.config文件添加配置,以便让ASP.NET知道使用您的SatelliteResourceProviderFactory并将您的资源移动到您的外部程序集中,但这应该是您不错的选择.

在这里可以找到大量文档……在“构建数据库资源提供程序”部分下…

http://msdn.microsoft.com/en-us/library/aa905797.aspx#exaspnet20rpm_topic4

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读