【发布时间】:2010-09-08 00:52:37
【问题描述】:
在 SquadView 页面 (VfmElitaSilverlightClientView.Pages.SquadView) 的 XAML 文件中,我正在使用自定义值转换器。 XAML 文件位于“VfmElitaSilverlightClientView”命名空间中。为转换器创建了单独的文件夹,它位于“VfmElitaSilverlightClientView.Converter”命名空间中(在同一个程序集中)。要使用转换器,在 XAML 中使用以下代码:
xmlns:Converter="clr-namespace:VfmElitaSilverlightClientView.Converter"
...
<NavigationControls:Page.Resources>
<Converter:BooleanToVisibilityConverter x:Key="resourceBooleanToVisibilityConverter" />
</NavigationControls:Page.Resources>
一切正常。在这里,我想将转换器类移动到自定义的单独程序集“SilverlightCommonView”中,并且类本身将位于“SilverlightCommonView.Converter”命名空间中。 XAML 代码更改为以下内容:
xmlns:Converter="clr-namespace:SilverlightCommonView.Converter;assembly=SilverlightCommonView"
...
<NavigationControls:Page.Resources>
<Converter:BooleanToVisibilityConverter x:Key="resourceBooleanToVisibilityConverter" />
</NavigationControls:Page.Resources>
在这种情况下,当应用程序抛出以下异常时:
一个未处理的异常('Unhandled Silverlight 应用程序中的错误... 代码:4004 类别: ManagedRuntime 错误消息: Microsoft.Practices.Unity.ResolutionFailedException: 依赖解析失败,type="VfmElitaSilverlightClientView.Pages.SquadView", 名称=“(无)”。 发生异常时:调用构造函数 VfmElitaSilverlightClientView.Pages.SquadView()。例外是:XamlParseException - 找不到类型“BooleanToVisibilityConverter”,因为 'cl ...:SilverlightCommonView.Converter;assembly=SilverlightCommonView' 是一个未知的命名空间。
不清楚为什么指定的命名空间是未知的(那些程序集被当前的引用)。
请指教。
欢迎提出任何想法。
【问题讨论】:
-
仅供参考,您的第二个示例 XAML 是错误的,尽管我怀疑在问这个问题时这是一个复制粘贴错误,因为您有一个异常,似乎表明您在实际应用程序中做对了。您使用的是“Converter:”而不是“CommonConverter2:”
标签: silverlight silverlight-4.0 assemblies