我可以使用派生类的对象访问基类的静态属性吗?

A.T*_*.T. 0 c# oop

我有多个图层,其中我有字段UserToken,我需要通过会话.我正在点击WCF服务,每次请求我都会在标头中传递一个UserToken.我每次在基类中设置UserToken时都不会传递此标头,以便从该静态字段中获取令牌.我正在构建WPF应用程序.

    public class A  // Base layer
    {
        static string token;
    }
    public class B : A // First Level layer
    {

    }

    public Class Main : B  // Second level layer
    {
       //Here i want to do something like ...
       new B().[get base class of it i.e. A and then access static property of A]
    }
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为我的项目中有多个图层,我不想将基础图层引用到我的第二层图层?我怎样才能实现这一目标?

Dan*_*.G. 5

您可以将A中的静态属性声明为protected,只需从任何派生类访问它,就像访问任何静态属性一样:

public class A  // Base layer
{
    protected static string token = "base class token";
}
public class B : A // First Level layer
{

}

public class Main : B  // Second level layer
{
   public string GetFromBase()
    {
        return A.token;
    }
}
Run Code Online (Sandbox Code Playgroud)

只是一个快速控制台示例:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(new Main().GetFromBase());
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)