2013-01-15 4 views
5

W moim kodu App.xaml Mam następujący kod:Jak naprawić: Konstrukcja językowa XAML2009 jest tutaj zabroniona?

<Application x:Class="PcgTools.App" 
    ... 
    <Application.Resources> 
     <ResourceDictionary> 
      ... 
      <res:Strings x:FactoryMethod="res:StringResourceHelper.GetStringResources" 
      x:Key="LocStrings"/> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

dostałam od kompilatora VS2012 błąd przed używać FactoryMethod lub Atrybut skonstruować. Ale teraz dostaję błąd: konstrukcja językowa Xaml2009 jest tutaj zabroniona.

Jak to naprawić?

Odpowiedz

7

XAML 2009 nie jest dozwolony w skompilowanym XAML (przynajmniej nie w WPF 4.0), spróbuj przenieść swoje rzeczy, które używają konstruktów 2009 do oddzielnego pliku słownika zasobów.

10

XAML 2009 jest niestety bezużyteczny z powodu braku obsługi kompilatora (chociaż VS rozpoznaje go z jakiegoś głupiego powodu).

Patrz: MSDN doc on XAML 2009

Zasadniczo brak prądu kompilator (WPF, SL, WinRT) faktycznie ją obsługuje. O ile mi wiadomo, jedyną rzeczą, która obsługuje XAML 2009, jest "luźne xaml", gdzie masz samodzielny plik xaml otwierany bezpośrednio przez przeglądarkę (co w zasadzie jest bezużyteczne).

Nie znam żadnych wyjaśnień Microsoftu, które wyjaśniają dlaczego nie są obsługiwane. :-(