Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make XmlnsDefinition work on the local assembly?

Tags:

wpf

xaml

I've started using the XmlnsDefinition attribute to tie together some CLR namespaces into a single xmlns for convenience in XAML.

Unfortunately, it seems that this only works when using foreign assemblies. If I have a XAML file in the same assembly as the types that are in the namespace I'm referencing from XmlnsDefinition, then the compiler gives an error about the type not existing in the xmlns I am defining.

Moving the type to a foreign assembly fixes the problem.

Is there a way to use XmlnsDefinition on an assembly and have it be used from within that assembly via XAML?

like image 546
scobi Avatar asked May 03 '10 19:05

scobi


1 Answers

Unfortunately, no. The XAML file must be parsed before the assembly is built in order to generate the code implied by the XAML to be included in the assembly. The XAML compiler produces code behind files (the files ending in, for example, .g.cs) and these file then become part of the assembly the XAML file is contained in. Since the assembly hasn't been built yet, the XAML compiler cannot load it to determine XmlnsDeclaration attributes have been specified.

like image 170
chuckj Avatar answered Oct 01 '22 10:10

chuckj