为什么在XAML文件中添加程序集会出错?
-
07-07-2019 - |
题
我有一个动态读取XAML文件的应用程序:
StreamReader sr = new StreamReader(pathAndFileName);
this.Content = XamlReader.Load(sr.BaseStream);
在其中一个加载的XAML文件中(它们都删除了代码),这有效:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DynamicXaml123">
<StackPanel Margin="10" HorizontalAlignment="Left">
<TextBox Height="23" Width="100" Text="{Binding FirstName}" />
<TextBox Height="23" Width="100" Text="{Binding LastName}" />
<TextBox Height="23" Width="100" Text="{Binding Age}" />
<local:FieldEmailView></local:FieldEmailView>
</StackPanel>
</UserControl>
但是这给出了错误“标签'FieldEmailView'在XML命名空间'clr-namespace:DynamicXaml123; assembly = DynamicXaml123'&quot;中不存在。
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DynamicXaml123;assembly=DynamicXaml123">
<StackPanel Margin="10" HorizontalAlignment="Left">
<TextBox Height="23" Width="100" Text="{Binding FirstName}" />
<TextBox Height="23" Width="100" Text="{Binding LastName}" />
<TextBox Height="23" Width="100" Text="{Binding Age}" />
<local:FieldEmailView></local:FieldEmailView>
</StackPanel>
</UserControl>
如果我遗漏了程序集引用,则会出现错误
Message=""XmlNamespace", "Assembly" oder "ClrNamespace"
在XAML中阅读时。
为什么我不能在此处包含大会参考,我需要更改/检查以使其工作?
解决方案
加载时,您需要能够解析程序集引用。换句话说,此程序集必须可供应用程序引用 - 一种方法是将DynamicXaml123部署到GAC。
不隶属于 StackOverflow