如果命名空间声明(xmlns)出现怎么办?

时间:2013-05-16 16:11:46

标签: c# wpf

在阅读之前注意:这是一个普遍的问题,我选择询问特定的扩展名,但答案应该是相同的......我猜。

我已经开始在我的项目中实现本地化,我正在使用WPF Localization Extension lib,但我有几个问题:

为了使lib工作,需要将此定义添加到每个xaml页面:
xmlns:lex="http://wpflocalizeextension.codeplex.com"

我有两个问题:
 1.如果网址因某些未知原因而消失怎么办?我的应用程序会失去所有扩展程序的功能吗?是否有人选择避免使用网址,而是使用某些本地文件或其他东西......?  2.我正在使用calibrun.micro,显然我的应用程序有几页,它们都通过ShellView.xaml嵌入ContentControl页面。是否有选项可以在shellview中编写命名空间声明(xmlns:lex等等 - 请参阅下面的代码)并让它自动影响所有其他页面?在每个单一的xaml页面中指定声明听起来效率非常低。

额外信息:

扩展页面:http://wpflocalizeextension.codeplex.com/
命名空间声明/定义:

    xmlns:lex="http://wpflocalizeextension.codeplex.com"
    lex:LocalizeDictionary.DesignCulture="en"
    lex:ResxLocalizationProvider.DefaultAssembly="WpfApplication3"
    lex:ResxLocalizationProvider.DefaultDictionary="Strings"

1 个答案:

答案 0 :(得分:3)

1 - 该网址只是象征性的。它没有指向实际的互联网地址。它可以是“http://whatever.com”,只要它与您所指的程序集中XmlnsDefinition中定义的xml名称空间完全相同,它仍然可以工作。 要清楚,它只是一个名称(恰好有类似互联网的格式),而不是网站地址。

2 - 不,没有办法宣布项目范围xmlns。这是我们对微软抱怨的最大抱怨之一,但他们放弃了WPF,或者放弃了WinRT,所以我不希望得到修复。