C# 不同项目中资源的站点地图本地化

C# 不同项目中资源的站点地图本地化,c#,asp.net,localization,resources,sitemap,C#,Asp.net,Localization,Resources,Sitemap,我正在使用ASP.NET4.0开发一个网站,该网站使用位于单独项目文件中的资源 总的来说,本地化进展顺利。但是,站点地图未正确本地化 最初,我使用隐式本地化来命名资源键,但是当资源被移动到另一个项目时,这就中断了。我们有多个项目共享相同的资源,因此单独的资源项目是有意义的 出于这个原因,我决定将站点地图资源明确化 原始siteMapNode: 使用在资源移出项目之前一直有效的资源密钥: 最后,使用显式资源创建sitemap节点: 不幸的是,使用最后一个sitemap节点,我在sitemap显示

我正在使用ASP.NET4.0开发一个网站,该网站使用位于单独项目文件中的资源

总的来说,本地化进展顺利。但是,站点地图未正确本地化

最初,我使用隐式本地化来命名资源键,但是当资源被移动到另一个项目时,这就中断了。我们有多个项目共享相同的资源,因此单独的资源项目是有意义的

出于这个原因,我决定将站点地图资源明确化

原始siteMapNode:

使用在资源移出项目之前一直有效的资源密钥:

最后,使用显式资源创建sitemap节点:

不幸的是,使用最后一个sitemap节点,我在sitemap显示上获得了$Namespace:sitemap,Account


有人有进一步的建议吗?

我最终没有修改站点地图文件并使用以下站点地图节点

<siteMapNode url="Account" title="Account" description="showNavigation('Account');" resourceKey="Account">
在GetString调用中,参数应该是:node.ResourceKey+.Title。然而,我也借此机会简化了资源文件,并从每个键中删除了所有.Title后缀

<%# Eval("Title") %>
<asp:Literal ID="litTitle" runat="server"/>
var node = ((SiteMapNode)e.Item.DataItem);
var litTitle = ((Literal)e.Item.FindControl("litTitle"));
if (node != null)
{
    litTitle.Text = Sitemap.ResourceManager.GetString(node.ResourceKey, CultureInfo.CurrentCulture);
}