Retrieve class name hierarchy as string
<p>Our system complexity has risen to the point that we need to make permission names tied to the client from the database more specific. In the client, permissions are referenced from a static class since a lot of client functionality is dependent on the permissions each user has and the roles have a ton of variety. I've referenced <a href="http://stackoverflow.com/questions/179700/get-the-name-of-a-class-as-a-string-in-c">this post</a> as an example, but I'm looking for a more specific use case. Take for instance this reference, where PermissionAlpha would be a const string:</p>

<pre><code>return HasPermission(PermissionNames.PermissionAlpha);
</code></pre>

<p>Which is great, except now that things are growing more complex the classes are being structured like this:</p>

<pre><code>public static class PermissionNames
{
    public static class PermissionAlpha
    {
        public const string SubPermission = "PermissionAlpha.SubPermission";
    }
}
</code></pre>

<p>I'm trying to find an easy way to reference PermissionAlpha in this new setup that will act similar to the first declaration above. Would the only way to do this be to resort to pulling the value of the class name like in the example below? I'm trying to keep all the names in one place that can be reference anywhere in the application.</p>

<pre><code>public static class PermissionAlpha
{
    public static string Name { get { return typeof(PermissionAlpha).Name; } }
}
</code></pre>

<p>** Edit ** - Added missing permission name.</p>
