Issue with x:TypeArguments and generic List class in XAML

I created the following markup for a loose XAML file.

<StackPanel 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:sys="clr-namespace:System;assembly=mscorlib"
  xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib">
    <scg:List x:TypeArguments="sys:String">
        HelloWorld
    </scg:List>
</StackPanel>

But I get this error when I run the loose XAML in IE:

The tag 'List' does not exist in XML namespace 'clr-namespace:System.Collections.Generic;assembly=mscorlib'. Line '7' Position 2'.

As you would know, generics in XAML are a feature in XAML 2009 and can work for the most part only in loose XAML files. But the above code doesnt work.

Any clue why this error occurred and how to rectify the issue? Thanks in advance.

Answers


I've just tested your sample with Internet Explorer 9. IE9 uses PresentationHost.exe to render the content and on my system (Windows 7 SP1 x64), and by examining which assemblies are actually loaded I confirmed that it uses the v3.0 framework which does not support XAML 2009.

The documentation describes that for XBAPs it chooses which framework version to load and so it is clearly capable of using the v4.0 framework which does support XAML 2009 for loose XAML. However, the documentation unfortunately does not say which version of the framework it will choose for loose XAML as opposed to XBAPs.

Empirically, at least with your sample, I can confirm that PresentationHost.exe chooses the v3.0 framework. I cannot find any way to override this selection, for example by annotating the XAML somehow.


Need Your Help

How can I loop a process that ends in an event? (c#.NET)

c# events loops stack

I have a process that calls an event when its done.

bugs in programs and fighting with them

java java-ee servlets

I am relatively new to programming and especially to Java... So it takes me quite a long time to look for small snags - for example today I spent 5 hours to find that I wrote "servlet-name" as

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.