If the assembly is a dll, no public members are pruned at all. If the assembly is an exe, all public members are pruned if they are not used elsewhere. This includes public interfaces.
I've been painfully determining what can and what cannot be pruned in our WPF type application. I had narrowed down a set of problems to a namespace full of interfaces, but that namespace also included the equivalent of implementation classes.
In the end, it turns out a few implementation classes had some methods that weren't part of their parent interfaces that were being cut out.
Anyway, got me wondering if I ever have to worry about [DoNotPruneType] on an interface.
So far, anything remotely behaving like a View Model in the MVVM pattern cannot be pruned. S/A doesn't check for property usage w/in XAML. And since WPF binds everything as "object", I doubt it could anyway.
Comments
May I ask what prompted this question?
In the end, it turns out a few implementation classes had some methods that weren't part of their parent interfaces that were being cut out.
Anyway, got me wondering if I ever have to worry about [DoNotPruneType] on an interface.
So far, anything remotely behaving like a View Model in the MVVM pattern cannot be pruned. S/A doesn't check for property usage w/in XAML. And since WPF binds everything as "object", I doubt it could anyway.