Making a XAML file internal in .NET

user64349 picture user64349 · Mar 15, 2009 · Viewed 9.7k times · Source

In my Silverlight project, I would like to make an assembly which contains .xaml that can't be seen from outside of the assembly. However, there is no clear way I can do this. When I modify the access modifier on the .xaml.cs file, the compiler tells me:

Partial declarations of "My xaml class here" have conflicting accessibility modifiers   

In the xaml file itself, there doesn't seem to be a place to put my access modifier. In short, how do I set the class associated with my xaml file to internal.

Answer

chuckj picture chuckj · Mar 15, 2009

You need to add a x:ClassModifier="internal" in the UserControl tag of the XAML file if you change the visibility of the class in the .cs file to internal.

The file generated from the XAML file (e.g. MyControl.g.cs) needs to match the code-behind file (e.g. MyControl.cs). x:ClassModifier allows you to control the visibility of the part declaration in the MyControl.g.cs file.