无法访问静态上下文中的非静态字段 [字段名称]

2024-01-24

基类:

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; }
  }

...

派生类:

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);
}

我收到此行的错误“无法在静态上下文中访问非静态字段 useServiceConnection”:

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

但是,如果我将 useServiceConnection 设为静态变量来满足要求,那么我会在构造函数中遇到相同的错误:

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

现在,如果我将 useServiceConnection 和 ConnectionSting 属性设置为非静态,那么我会在此处收到构造函数的错误:

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

我想前两个我理解。

但现在更新了下面的示例,为什么这种情况下的构造函数仍然会给我一个错误?这些不再是静态的,那么静态上下文从哪里来呢?这就是我现在所拥有的:

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;
    }

我在这个类中有其他静态属性,这有什么关系吗?不过我没有使用它们。


变量useServiceConnection is not static所以它只存在于类实例的上下文中。自该物业ConnectionString是静态的,它不存在于实例的上下文中,因此它无法“查看”实例成员。你需要做ConnectionString不是静态的,或者使useServiceConnection static.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法访问静态上下文中的非静态字段 [字段名称] 的相关文章

随机推荐

  • 如何在 Android 上通过电话号码查找联系人姓名?

    我正在尝试使用内容提供商从联系人数据库中获取发件人的姓名 问题是我不知道如何实现它 就像现在我只能从短信中提取电话号码 我需要首先检查正在呼叫的电话号码是否在用户联系人中 如果是 则显示姓名 如果不是 则显示号码 是的 这可以使用Conta
  • 当我的 Activity 不可见时,如何暂停 Android WebView 中的 Flash 内容?

    我正在尝试使用 WebView 在我的活动中显示 Flash 内容 一切都工作得很好 但是当用户按下 home 键将 Activity 置于后台时 Flash 内容会继续运行 声音继续播放等 我注意到 原生的 Android 浏览器和 Do
  • 如何在文件android中保存具有Pair值的对象arrayList

    我想保存一个连接数组列表 这些连接在文件中具有 Pairs 值 但它显示 NotSerializedException 我还实现了可序列化接口 我以为它发生在双人班上 如果您有任何解决方案可以保存这些连接数组并从文件中检索 连接 kt da
  • 使用不平衡学习库的特征重要性

    The imblearn http contrib scikit learn org imbalanced learn stable generated imblearn ensemble BalancedBaggingClassifier
  • 如何正确编写“net.Pipe()”的“Read”和“Write”

    我正在尝试net Pipe 我想写 haha 字符串然后读回可能是一个很好的实验 这是我的第一个版本 它阻止了Write func TestNetPipe t testing T out1 make byte 10 c1 c2 net Pi
  • AngularJS:未捕获错误:[$injector:modulerr] 无法实例化模块?

    我是 AngularJS 的新手 正在通过一些文档和教程来学习 我的问题是关于 Egghead 的视频系列 特别是这个视频 演示了如何组合一个基本的搜索过滤器 我想在一个真实的应用程序中使用它 我正在为一位拥有小型蜡烛制作业务的朋友构建它
  • Python 和 mySQLdb 错误:OperationalError: (1054,“‘where 子句’中的未知列”)

    大家好 我收到一个错误 操作错误 1054 where 子句 中未知列 XX 其中XX是下面代码中CLASS的值 conn MySQLdb connect host localhost user user passwd pass db db
  • IIS URL 重写

    好吧 这让我发疯 我正在尝试像这样重写我的网址 Now http www somedomain com Somepage aspx http www somedomain com AnotherPage aspx Desired http
  • 在append()上做一些事情

    当元素附加到 DOM 时是否可以添加某种事件 处理程序 click change keyup 等等 我需要在附加元素后立即获取其高度 然后将高度设置为另一个元素 您可以覆盖默认的追加方法并使其触发自定义追加事件 然后将处理程序绑定到该事件的
  • 用于读取电子邮件的 PHP 库

    我目前使用 SwiftMailer 库send电子邮件 但不幸的是它只能发送 不能接收 我想知道 是否有一个类似的库可以通过 IMAP 连接到电子邮件帐户并阅读电子邮件 IE 使我能够循环浏览电子邮件 我知道这里有一组 PHP IMAP 函
  • 托管 C# 应用程序需要 64 位 SQLite DLL

    我正在尝试将 SQLite 嵌入到我的便携式 C NET 2 0 应用程序中 而不是将 DLL 文件包含在分发文件夹中 但是 要嵌入 SQLite 我无法使用 PHXSoftware 提供的混合模式库 相反 我使用他们的 仅限托管 版本 这
  • WCF 服务应该返回普通的旧对象,还是您正在使用的实际类?

    我正在使用另一家公司的 WCF 服务 它返回一个类型的对象object 是否有理由不返回实际的类 并返回必须转换为正确形式的对象 例如 如果 Web 服务返回一个类型的对象OrderStatus 为什么你要返回一个普通的旧的object 如
  • 在 Java 中打印到特定打印机 (IPP URI)

    Java中有没有办法打印到特定的IPP打印机 我发现的所有示例代码和教程都集中于如何使用如下内容打印特定类型的文档 DocFlavor flavor DocFlavor INPUT STREAM POSTSCRIPT PrintReques
  • UIImageView+animatedGIF 总是循环

    我使用了 mayoff Rob Mayoff UIImageView animatedGIF 制作的类 这是在 stackoverflow 上的答案之一中提出的 UIImageView 动画GIF https github com mayo
  • 如何在 TextBox 上使用 JQuery 的拖放功能?

    我正在使用 JQuery 并想要移动一个文本框 就像使用draggable 函数拖动它一样 并使其成为 droppable 以便在其上放置一些属性 我无法使文本框可拖动或可放置 只有当我用 Div 包围文本框时 这才成为可能 为什么会这样呢
  • 为什么Groovy的map没有metaClass?

    为什么 Groovy 的文字映射没有元类 lists work as expected aList println aList class class java util ArrayList println aList metaClass
  • 将networkx图导出到json图文件的方法?

    我有一个后续问题要问将networkx图保存为json图的方法 https stackoverflow com questions 3162909 method to save networkx graph to json graph 但
  • 高频 Ajax 和 MySQL 睡眠过载

    我目前正在开发一个轻型 php 框架 以便与我的网站的一些高请求 ajax 一起使用 并且遇到了一个有趣的问题 让我完全陷入困境 ajax 用于一系列通知 因此 javascript 每 30 秒发送一次 ajax 请求以获取新信息 这个
  • 检测自动过滤器更改

    我希望检测特定表上自动筛选器中的任何更改 目的是强制 UDF 对当前可见的表条目执行一些简单的算术以更新其结果 到目前为止 使 UDF 具有易失性还没有产生任何影响 但它也不直接针对表 这个解决方案 https stackoverflow
  • 无法访问静态上下文中的非静态字段 [字段名称]

    基类 public class DatabaseBase private readonly string connectionString private bool useCounters public DatabaseBase strin