Não é possível acessar o campo não estático [fieldname] no contexto estático

A classe base:

public class DatabaseBase
{
  private readonly string connectionString;
  private bool useCounters;

  public DatabaseBase(string connectionString)
  {
   this.connectionString = connectionString;
  }

  public DatabaseBase(...)
  {
   connectionString = ...;   
  }

  public DatabaseBase(..)
  {
   connectionString = string.Format(...);
  }

  public string ConnectionString
  {
   get { return this.connectionString; }
  }

...

A classe derivada:

public class ProjectDB : DatabaseBase
{
private bool useServiceConnection;

 private static string ConnectionString
 {
     get
     {
        string connectionString = useServiceConnection == true ? ConfigurationManager.AppSettings["SomeConnection1"] : ConfigurationManager.AppSettings["SomeConnection2"];
         return connectionString;
     }
 }


public ProjectDB() : this(false)
{
}

 private bool isServiceCall;

public ProjectDB(bool useServiceConnection)
    : base(ConnectionString)
{
    this.useServiceConnection = useServiceConnection;
}

private SqlConnection CreateConnection()
{
    return new SqlConnection(ConnectionString);
}

Estou recebendo o erro "Não é possível acessar o campo não estático useServiceConnection no contexto estático" para esta linha:

string connectionString = useServiceConnection == true ? ConfigurationManager.AppSettings["SomeConnection1"] : ConfigurationManager.AppSettings["SomeConnection2"];

No entanto, se eu fizer useServiceConnection um var estático para satisfazer a peculiaridade, então eu recebo o mesmo erro aqui no construtor:

public ProjectDB(bool useServiceConnection)
    : base(ConnectionString)
{
    this.useServiceConnection = useServiceConnection;
}

Agora, se eu fizer a propriedade useServiceConnection e ConnectionSting não estática, então eu recebo esse erro para o construtor aqui:

public LitleDB(bool useWebServiceConnection)
    : base(ConnectionString)
{
    this.useWebServiceConnection = useWebServiceConnection;
}

Eu acho que os dois primeiros eu entendo.

Mas agora com o exemplo atualizado abaixo, por que o construtor neste caso ainda me dava um erro? Aqueles não são mais estáticos, então de onde o contexto está sendo esperado? Então aqui está o que eu tenho agora:

public class ProjectDB : DatabaseBase
 {
    private bool useServiceConnection; <-- NO LONGER STATIC

     private new string ConnectionString <-- NO LONGER STATIC
     {
         get
         {
            string connectionString = useServiceConnection == true ? ConfigurationManager.AppSettings["SomeConnection1"] : ConfigurationManager.AppSettings["SomeConnection2"];
             return connectionString;
         }
     }

    public ProjectDB() : this(false)
    {
    }

     private bool isServiceCall;

    public ProjectDB(bool useServiceConnection)
        : base(ConnectionString)  <--- IT'S COMPLAINING HERE NOW, SO WHERE IS IT TRYING TO ACCESS STATICALLY?  I DON'T GET WHY
    {
        this.useServiceConnection = useServiceConnection;
    }

Eu tenho outras propriedades estáticas nesta classe, isso tem alguma coisa a ver com isso? Eu não estou usando eles embora.

questionAnswers(4)

yourAnswerToTheQuestion