Ho una classe come il seguenteUtilizzando PowerShell per accedere classe statica all'interno di una classe statica
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";
}
}
}
posso ottenere il myValue utilizzando PowerShell,
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$parentValue = [Foo.Bar.ParentClass]::myValue
Ma io sono in grado di ottenere la classe all'interno della classe myChildValue. Qualcuno può aiutare?
Pensato che potrebbe essere qualcosa di simile in basso, ma $ childValue è sempre vuoto.
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$childValue = [Foo.Bar.ParentClass.ChildClass]::myChildValue
Grazie, punto extra per rispondere così velocemente. È quello che fa + per, quindi se ci fosse una classe sotto il bambino, mi piacerebbe Foo.Bar.ParentClass + ChildClass + ChildOfChildClass – Cann0nF0dder
Il '+' è dal nome interno di quella classe. C# usa il punto '.' sia per la separazione dei namespace che per le classi nidificate, ma .NET non lo fa. Ciò risulta evidente quando si utilizza la riflessione per accedere anche ai tipi (ed è anche documentato [lì] (http://msdn.microsoft.com/library/w3f99sx1.aspx), a circa metà della pagina). Quindi sì, le classi nidificate annidate useranno anche '+'. – Joey
Grazie per il link e la spiegazione. – Cann0nF0dder