При создании объектов SiteMapNode используйте конструктор, который позволяет указать неявные/явные ключи ресурсов. Я бы рекомендовал использовать явные ключи ресурсов.
http://msdn.microsoft.com/en-us/library/ms150104.aspx
«Чтобы программно задать ресурсы для локализации, либо установить значение implicitResourceKey с уникальным именем, которое будет использоваться для идентификации локализованных ресурсов для узла или установить explicitResourceKeys в коллекцию NameValueCollection из имен пара/значения где name - это свойство узла или пользовательский атрибут для локализации, а значение содержит значения локализации для свойства узла или пользовательского атрибута. Затем локализованные значения могут быть установлены в соответствующих файлах .resx. Дополнительные сведения о локализации заголовка, описания, и любые пользовательские свойства объекта SiteMapNode, см. Как: Локализовать данные Site-Map. Требования к синтаксису коллекции explicitResourceKeys см. в разделе NameValueCollection. "
Обычно для локализации статической карты сайта вы должны использовать выражение ресурса следующим образом: "$Resources:<ClassName>,<KeyName>,<DefaultValue>"
.
Вместо этого добавьте <ClassName>
, <KeyName>
и <DefaultValue>
значения в explicitResourceKey NameValueCollection в порядке их появления в выражении, все добавлено, используя тот же ключ.
Так что, если ваше выражение было бы "$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node"
, вместо того, чтобы сделать следующее:
explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")
Вы можете сделать то же самое для описания.
Lol, лучше поздно, никогда! Спасибо, что объяснили! – Ropstah