Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 名称空间中的URL引用,它们是如何工作的?_C#_Wpf_Xml_Xaml_Xml Namespaces - Fatal编程技术网

C# 名称空间中的URL引用,它们是如何工作的?

C# 名称空间中的URL引用,它们是如何工作的?,c#,wpf,xml,xaml,xml-namespaces,C#,Wpf,Xml,Xaml,Xml Namespaces,我了解常规XML名称空间,例如: xmlns:myExample="clr-namespace:WindowsApp.MyNamespace;assembly=MyAssembly" 但我经常看到表单的名称空间: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="ht

我了解常规XML名称空间,例如:

 xmlns:myExample="clr-namespace:WindowsApp.MyNamespace;assembly=MyAssembly"
但我经常看到表单的名称空间:

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
这些URL名称空间是什么意思?当我在浏览器中键入URL时,URL不起作用;有人知道这是怎么回事吗?提前感谢。

请参阅和相关属性:


此属性用于XAML处理器的clr映射,它允许将一个或多个clr命名空间映射到单个
xmlns
,并且可以在程序集信息中定义它。

正如John Saunders所说,命名空间是URL。事实上,这是一个网址是误导。名称空间由URI(其中URL是其子集)标识。URI被视为字符串。当且仅当字符串相等时,两个命名空间标识符相等,因此这三个标识符都表示不同的命名空间:

  • http://www.example.org/~wilbur
  • http://www.example.org/%7ewilbur
  • http://www.example.org/%7Ewilbur
(示例来自规范:)

名称空间的作用(与名称空间一样)是使相同的名称能够引用不同的内容。因此,您可以这样编写XML(假设您声明了命名空间前缀
legacy
newSystem
):



这两个TableName元素引用的内容不同,因为它们的名称空间不同。

请参阅@foreyez:仔细阅读/info页面。这些URL是XML名称空间。事实上,URL类型是最常见的类型。我对/info页面上的解释不太感兴趣。还有其他人吗?@foreyez:它甚至包括一个到标准的链接。你去看了吗?我想您对XML的接触主要是通过XAML?如果你有更广泛的接触,你会意识到XAML将XML名称空间映射到CLR名称空间的方式是不寻常的。@foreyez:这是一个简单的答案。你读了信息页面链接到的问题了吗?有时,避免RTFM的唯一方法是复制TFM,为什么要这样做?MSDN链接看起来和foreyez所问的一模一样。@John Saunders:询问者知道如何映射到CLR名称空间,知道它们的用途,他想知道如何映射到这些自定义URL,这就是
xmlnDefinitionAttribute
的用途,第一个链接进一步解释了XAML映射。就我个人而言,我看不出这个问题怎么会是“”的重复。对不起,您误解了,可能是因为您对XML的接触来自XAML。只有在XAML中,名称空间“映射”到某个对象。一般来说,发布的链接正确地描述了XML名称空间;XAML碰巧使用某些XML名称空间的目的超出了其在XML标准中的用途。@约翰·桑德斯:我没有误解,我知道XML名称空间在其他情况下是如何使用的。这只是因为在XAML中,名称空间的背后比在普通XML中有更多的东西,而且由于这个网站是用来回答被问到的问题的,所以我的答案就是这样。下面是你误解的地方。就“映射”到CLR类型而言,XAML中只有某些名称空间是特殊的。其余的都是普通的XML名称空间,不映射到任何东西。
<newSystem:Type newSystem:TypeName="Customer" newSystem:TableName="Customers" legacy:TableName="cstmr" />