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

时间:2008-10-19 18:06:02

标签: c# .net wpf xaml .net-3.5

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

MyApp.sln
  MyAppWPF
  MyApp.Domain

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

<Window 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>
</Window>

我收到错误,说无法找到程序集,但是我可以在后面的代码中创建我想要引用的类的实例,所以我知道我已正确引用它。

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

5 个答案:

答案 0 :(得分:2)

检查是否

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

答案 1 :(得分:1)

可以提供任何帮助吗?

Visual Studio 2008 (RTM) WPF Designer Could Not Load Assembly or Dependency

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

答案 2 :(得分:1)

如果您正在动态编译松散的XAML,则只需要放置assembly=MyApp.Domain

如果您最初只是构建了一次XAML,请排除该令牌,而只是说xmlns:local="clr-namespace:MyApp.Domain"

答案 3 :(得分:0)

如果XAML没有松动(在程序集(DLL / EXE)中编译) 确保程序集具有对您要查找的程序集的引用 (右键单击项目 - &gt;添加引用...)
如果XAML松动,请确保将要查找的程序集复制到运行exe的同一目录中。

答案 4 :(得分:0)

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

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