Frage

Ich habe eine Anwendung, die dynamisch wie dies in XAML liest Dateien:

StreamReader sr = new StreamReader(pathAndFileName);
this.Content = XamlReader.Load(sr.BaseStream);

In einem dieser XAML-Dateien, die in geladen wird (sie alle haben ihren Code hinter entfernt hatte), das funktioniert:

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

Aber dies gibt dem Fehler "Der Tag 'FieldEmailView' existiert nicht in XML-Namespace 'clr-namespace: DynamicXaml123; Montag = DynamicXaml123'".

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

Wenn ich die Montage Referenz auslassen dann wird es den Fehler

Message=""XmlNamespace", "Assembly" oder "ClrNamespace"

, wenn in der XAML zu lesen.

Warum kann ich nicht die Versammlung Bezug hier enthalten, was muss ich ändern / überprüfen Sie diese Arbeit zu bekommen?

War es hilfreich?

Lösung

Wenn Sie dies in laden, müssen Sie in der Lage sein, um die Montage Verweise aufzulösen. Mit anderen Worten, muss diese Anordnung für die Anwendung Referenz zur Verfügung steht gegen -. Einen Weg, dies zu tun, wäre DynamicXaml123 im GAC bereitstellen

Andere Tipps

Ich würde vorschlagen, immer aus Prozessmonitor und zu sehen, wo Ihre App sucht dynamicxaml123. Schauen Sie sich die Fusion log auch. Ich würde vermuten, das Verhalten im XamlSerializer anders ist, wenn Sie den Namespace als enthalten, wenn Sie dies nicht tun, und diese Änderung zu beeinflussen, wo die Laufzeit um für Ihre Montage stößt.

Beachten Sie, kann es einige Verzögerung sein zwischen fuslogvw Einrichtung und wenn es beginnt tatsächlich zu protokollieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top