5

我有一个类似于以下的课程

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";
      }
     }
}

我可以使用 powershell 获取 myValue,

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

但是我无法在 myChildValue 类中获取该类。任何人都可以帮忙吗?

认为它可能如下所示,但 $childValue 始终为空。

[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$childValue = [Foo.Bar.ParentClass.ChildClass]::myChildValue
4

1 回答 1

10

[Foo.Bar.ParentClass+ChildClass]。在 PowerShell 3 选项卡完成上会告诉你很多。此外,您可以使用Add-Type直接编译和加载代码:

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

无需摆弄 C# 编译器和[Assembly]::LoadWithPartialName.

于 2013-09-24T08:12:47.637 回答