Tôi có một lớp như như sauSử dụng Powershell để truy cập lớp tĩnh trong một lớp tĩnh
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";
}
}
}
Tôi có thể lấy myValue sử dụng PowerShell,
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$parentValue = [Foo.Bar.ParentClass]::myValue
Nhưng tôi không thể nhận được lớp trong lớp myChildValue. Có ai giúp được không?
Nghĩ rằng nó có thể giống như dưới đây nhưng $ childValue luôn trống.
[System.Reflection.Assembly]::LoadWithPartialName("Foo.Bar")
$childValue = [Foo.Bar.ParentClass.ChildClass]::myChildValue
Cảm ơn bạn, điểm bổ sung để trả lời quá nhanh. Đó là những gì + dấu hiệu cho, vì vậy nếu có một lớp bên dưới lớp con nó sẽ cho tôi Foo.Bar.ParentClass + ChildClass + ChildOfChildClass – Cann0nF0dder
'+' là từ tên nội bộ của lớp đó. C# sử dụng dấu chấm '.' để tách cả không gian tên và các lớp lồng nhau, nhưng bản thân .NET thì không. Điều này trở nên rõ ràng khi bạn sử dụng phản ánh để truy cập các loại cũng (và cũng là tài liệu [có] (http://msdn.microsoft.com/library/w3f99sx1.aspx), khoảng một nửa xuống trang). Vì vậy, có, các lớp lồng nhau lồng nhau sẽ sử dụng '+' là tốt. – Joey
Cảm ơn bạn đã liên kết và giải thích. – Cann0nF0dder