Ich habe eine Klasse, wie wie die folgendenPowershell Verwenden von statischer Klasse innerhalb einer statischen Klasse zuzugreifen
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";
}
}
}
ich die myValue Power mit bekommen kann,
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$parentValue = [Foo.Bar.ParentClass]::myValue
Aber ich bin nicht in der Lage zu bekommen die Klasse innerhalb der Klasse myChildValue. Kann jemand helfen?
Dachte, es könnte etwas wie unten sein, aber $ childValue ist immer leer.
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$childValue = [Foo.Bar.ParentClass.ChildClass]::myChildValue
Vielen Dank, extra Punkt für die Beantwortung so schnell. Ist das was für +, also wenn es eine Klasse unter der Kindklasse gäbe würde es mich Foo.Bar.ParentClass + ChildClass + ChildOfChildClass – Cann0nF0dder
Das '+' ist vom internen Namen dieser Klasse. C# verwendet den Punkt '.' für Namespace-Trennung und geschachtelte Klassen, aber .NET selbst nicht. Dies wird offensichtlich, wenn Sie Reflection verwenden, um auch auf Typen zuzugreifen (und ist auch dort dokumentiert (http://msdn.microsoft.com/library/w3f99sx1.aspx), ungefähr auf halber Seite der Seite). Also ja, verschachtelte verschachtelte Klassen würden auch '+' verwenden. – Joey
Vielen Dank für den Link und die Erklärung. – Cann0nF0dder