Welcome to Bilal Haidar [MVP, MCT] Official Blog Sign in | Join | Help

Internal Access Modifier on C# Namespaces

As part of a Silverlight applicatin I am currently developing, I have a small API that ships with the application that allows extending it with more features. I had few "Default" implementations inside the API and hence I placed them within a Namespace where all classes are marked as Internal.

Now, when I started working on the app, I created a Visual Studio Blank Solution. So the Silverlight application and the API are in the same blank empty solution inside VS 2008. When I access the main Namespace of the API, I always get to see the name of the default implementations, however as empty since all classes inside it are internal. 

So how can I hide the Namespace that contains all those implementations? I read this blog here "http://www.bartlannoeye.be/blog/2008/08/06/MakeCNamespaceInternal.aspx" which helped me do what I want, but I thought of illustrating a bit more here in this post to clarify the idea more.

Rule 1: Make sure all the classes inside the Namespace you want to hide are marked as Internal.

Rule 2: If you add a reference to a project whose source code is in the same solution, you will always see the Namespace name however empty with no classes.

Rule 3: If you add a reference to a project whose source code is not present in the current application, the Namespace name that contains all internal classes will be hidden.

 

I tried it out and seems to work very nice.

Hope this helps,
Regards

Published Friday, May 01, 2009 2:08 PM by BilalHaidar [MVP]
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required)