Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Powershell to access Static class within a Static Class

I have a class as like the following

namespace Foo.Bar
{
    public static class ParentClass
    {
      public const string myValue = "Can get this value";

      public static class ChildClass
      {
        public const string myChildValue = "I want to get this value";
      }
     }
}

I can get the myValue using powershell,

[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$parentValue = [Foo.Bar.ParentClass]::myValue

But I'm unable to get the class within the class myChildValue. Can anyone help?

Thought it might be something like below but $childValue is always empty.

[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$childValue = [Foo.Bar.ParentClass.ChildClass]::myChildValue
like image 812
Cann0nF0dder Avatar asked Sep 24 '13 08:09

Cann0nF0dder


1 Answers

It's [Foo.Bar.ParentClass+ChildClass]. On PowerShell 3 tab completion will tell you as much. Furthermore, you can use Add-Type to compile and load the code directly:

C:\Users\Joey> add-type 'namespace Foo.Bar
>> {
>>     public static class ParentClass
>>     {
>>       public const string myValue = "Can get this value";
>>
>>       public static class ChildClass
>>       {
>>         public const string myChildValue = "I want to get this value";
>>       }
>>      }
>> }'
>>
C:\Users\Joey> [Foo.Bar.ParentClass+ChildClass]::myChildValue
I want to get this value

No need to fiddle around with the C# compiler and [Assembly]::LoadWithPartialName.

like image 142
Joey Avatar answered Nov 15 '22 09:11

Joey