Ich habe das folgende Markup für eine lose XAML-Datei erstellt.
%Vor%Aber ich erhalte diesen Fehler, wenn ich das lose XAML in IE starte:
Das Tag 'List' existiert nicht im XML-Namespace 'clr-namespace: System.Collections.Generic; assembly = mscorlib'. Linie '7' Position 2 '.
Wie Sie vielleicht wissen, sind Generika in XAML ein Feature in XAML 2009 und können größtenteils nur in lockeren XAML-Dateien arbeiten. Aber der obige Code funktioniert nicht.
Gibt es Hinweise darauf, warum dieser Fehler aufgetreten ist und wie das Problem behoben werden kann? Vielen Dank im Voraus.
Ich habe Ihr Beispiel gerade mit Internet Explorer 9 getestet. IE9 verwendet PresentationHost.exe
Um den Inhalt und auf meinem System zu rendern (Windows 7 SP1 x64), und indem ich die tatsächlich geladenen Assemblies untersuchte, habe ich bestätigt, dass es das v3.0 Framework verwendet, das XAML 2009 nicht unterstützt.
Die Dokumentation beschreibt, dass es für XBAPs entscheidet, welche Framework-Version geladen werden soll und somit eindeutig in der Lage ist, das v4.0-Framework zu verwenden, das XAML 2009 für loses XAML unterstützt. Die Dokumentation sagt jedoch leider nicht, welche Version des Frameworks für lose XAML im Gegensatz zu XBAPs gewählt wird.
Empirisch, zumindest mit Ihrer Probe, kann ich bestätigen, dass PresentationHost.exe
das v3.0-Framework wählt. Ich kann keine Möglichkeit finden, diese Auswahl zu überschreiben, zum Beispiel, indem ich das XAML irgendwie annotiere.