可以';t在XAML中创建对其他项目的xmlns引用
本文关键字:其他 项目 引用 xmlns 创建 XAML 可以 | 更新日期: 2023-09-27 17:47:49
我有一个定义如下的WPF项目:
MyApp.slnMyAppWPFMyApp.Domain
在MyAppWPF项目中的一个xaml文件中,我试图引用MyApp.Domain项目中定义的一个类。我在MyAppWPF中有一个到MyApp.Domain的项目引用。我正在尝试创建这样的引用:
<窗口x:Class="MyAppWPF.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr namespace:MyApp.Domain;assembly=MyApp.Domain"Title="Window1"Height="305"Width="485"><Window.Resources><local:MyClass x:Key="mine"/><Window.Resources><窗口>
我收到一个错误,说找不到程序集,但我可以在代码后面创建一个要引用的类的实例,这样我就知道我已经正确地引用了它。
我该怎么做?我需要一个强名称,还是直接引用dll而不是使用项目引用?
如果它对任何人都有帮助,我可以通过在引用包含项目本身的命名空间声明的末尾添加;assembly=
来解决我的问题。例如:
xmlns:local="clr-namespace:YourProjectNameSpace;assembly="
检查
- MyClass的完全限定名称是MyApp.Domain.MyClass
- MyClass有一个默认的公共构造函数(没有参数),因此XAML可以实例化它
有什么帮助吗
Visual Studio 2008(RTM)WPF设计器无法加载程序集或依赖项
我认为您使用的是Visual Studio 2008。如果您使用的是Visual Studio 2005,则这是代码为"Cider"的XAML设计器中的一个已知问题,该代码包含在"Visual Studio 2005 WPF和WCF扩展"中。
如果动态编译松散XAML,则只需要放置assembly=MyApp.Domain
。
如果您最初只构建了一次XAML,请排除该令牌,只说xmlns:local="clr-namespace:MyApp.Domain"
。
如果XAML不是松散的(在程序集(DLL/EXE)中编译)
请确保该程序集引用了要查找的程序集
(右键单击项目-->添加引用…)。
如果XAML是松散的,请确保它要查找的程序集被复制到运行exe的同一目录中。