无法在 XAML 中创建对其他项目的 xmlns 引用

Posted

技术标签:

【中文标题】无法在 XAML 中创建对其他项目的 xmlns 引用【英文标题】:Can't create xmlns reference to other project in XAML 【发布时间】:2010-09-18 00:30:28 【问题描述】:

我有一个这样定义的 WPF 项目:

我的应用程序.sln MyAppWPF 我的应用程序域

在 MyAppWPF 项目中的一个 xaml 文件中,我试图引用在 MyApp.Domain 项目中定义的类。我在 MyAppWPF 中有一个对 MyApp.Domain 的项目参考。我正在尝试创建这样的参考:

窗口>

我收到一条错误消息,提示找不到程序集,但是我可以在后面的代码中创建我想引用的类的实例,所以我知道我已经正确引用了它。

我该怎么做?我需要一个强名称,还是直接引用 dll 而不是使用项目引用?

【问题讨论】:

嗨 Ted - 你解决过这个问题吗? 不,但自从我提出这个问题以来,我并没有真正看过它。它只是一个学习 WPF 的应用程序。 【参考方案1】:

如果它对任何人有帮助,我只需在引用包含项目本身的命名空间声明末尾添加 ;assembly= 即可解决我的问题。例如:

xmlns:local="clr-namespace:YourProjectNameSpace;assembly=" 

【讨论】:

【参考方案2】:

检查是否

    MyClass 的完全限定名称是 MyApp.Domain.MyClass MyClass 有一个默认的公共构造函数(没有参数),因此 XAML 可以对其进行实例化。

【讨论】:

【参考方案3】:

有什么帮助吗?Visual Studio 2008 (RTM) WPF Designer Could Not Load Assembly or Dependency

我假设您使用的是 Visual Studio 2008。如果您使用的是 Visual Studio 2005,这是代号为“Cider”的 XAML 设计器中的一个已知问题,该问题包含在“Visual Studio 2005 Extensions for WPF and WCF”中”。

【讨论】:

【参考方案4】:

如果您要动态编译松散的 XAML,则只需输入 assembly=MyApp.Domain

如果您最初只是构建一次 XAML,请排除该令牌并改为使用 xmlns:local="clr-namespace:MyApp.Domain"

【讨论】:

【参考方案5】:

如果 XAML 不是松散的(在程序集中编译 (DLL/EXE) 确保该程序集引用了您要查找的程序集 (右键单击项目 --> 添加引用 ...)。 如果 XAML 松散,请确保将它要查找的程序集复制到运行 exe 的同一目录中。

【讨论】:

以上是关于无法在 XAML 中创建对其他项目的 xmlns 引用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ActiveRecords 中创建对 Ruby 中对象的引用?

如何在 XAML 代码中创建支持其中其他元素的 UserControl

如何在 Laravel 中创建对 db 的查询?

在领域中创建对对象的引用的正确方法

在Firestore中创建对Cloud Storage文档的引用

在 C++ 中创建对三元运算符结果的 const 引用是不是安全?