gpt4 book ai didi

.net - XmlnsDefinition似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 04:38:35 25 4
gpt4 key购买 nike

我有一个包含两个项目的解决方案:一个名为“MyTest.TestApplication”的WPF应用程序和一个名为“MyTest.ClassLibrary”的类库,以及相应的默认 namespace 。 MyTest.TestApplication引用了MyTest.ClassLibrary。 MyTest.ClassLibrary包含一个名为MyTest.ClassLibrary.TestClass的类。我想将此类的实例添加到应用程序的资源中,但要使用URL作为Xml namespace 值。

因此,我打开MyTest.ClassLibrary.AssemblyInfo.cs,添加一个

using System.Windows.Markup

指令,然后在最后添加行
[assembly: XmlnsDefinition("http://schemas.test.com/test", "MyTest.ClassLibrary")]

我构建项目,转到MyTest.TestApplication.App.Xaml,然后将 namespace 定义添加到Application元素。键入xmlns:t =“时,将立即获得程序集名称和uri的智能列表,但没有 http://schemas.test.com/test。如果仍然添加 namespace 定义,例如:
xmlns:t="http://schemas.test.com/test"

并将以下内容添加到Resources元素:
<t:TestClass x:Key="myTest" />

那么就不会创建该资源,并且Xaml编辑器会提示在 namespace http://schemas.test.com/test中不存在TestClass类。

令人沮丧的是,我添加了一个名为WpfCustomControlLibrary1的默认WPF自定义控件库,并添加了以下代码行:
[assembly: XmlnsDefinition("bluh", "WpfCustomControlLibrary1")]

到WpfCustomControlLibrary1.AssemblyInfo.cs,构建该项目,并在MyTest.TestApplication中对其进行引用,并且当我开始在App.xam中键入xmlns:b =“时,intellisense会在最顶部显示 namespace 列表,其中带有“蓝色” 。

我尝试添加各种程序集并在MyTest.ClassLibrary中使用指令,但无法使Visual Studio通过模式URL查找我的程序集。令人惊讶的是,如果将 namespace 设置为程序集名称,它确实可以工作,如下所示:
xmlns:t="clr-namespace:MyTest.ClassLibrary;assembly=MyTest.ClassLibrary"

所以..这是怎么回事?

编辑:令人沮丧的是,经过两个小时的搜索,我终于通过简单地从WPF应用程序中删除引用,然后重新添加它,使其开始工作。啊。我猜这是某种VS2012错误?

最佳答案

我认为“ClassLibrary”作为程序集名称存在问题。因为Resharper回来了,所以现在花了一些时间

System.TypeLoadException : Could not load type 'BMN.Utils.Logging.ConfigLogger' 
from assembly 'ClassLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

将程序集名称更改为BMN.Utils.Logging.UnitTests可以解决此问题。

关于.net - XmlnsDefinition似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com