为什么我得到“;非静态字段、方法或属性需要对象引用';Photrax.App.DBPath.get'&”;

本文关键字:对象引用 Photrax DBPath App 属性 get 静态 方法 字段 为什么 | 更新日期: 2023-09-27 18:27:00

利用这里的代码,我将其添加到App.xaml.cs:中

sealed partial class App : Application
{
    public string DBPath { get; set; }
    public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    protected override void OnLaunched(LaunchActivatedEventArgs e)
    {
        . . .
        this.DBPath = Path.Combine(
            Windows.Storage.ApplicationData.Current.LocalFolder.Path, "photrax.sqlite");
        . . .

但是这个代码:

internal static List<PhotraxBaseData> SavePhotoset(List<PhotraxExifData> exifData)
{
    using (var db = new SQLite.SQLiteConnection(App.DBPath))
    . . .

失败,"非静态字段、方法或属性'Photrax.App.DBPath.get'需要对象引用"

Photrax是我项目的名称空间;但是附加的"get"爵士乐是怎么回事?

我需要做什么才能为SQLiteConnection构造函数提供所谓的全局数据库路径?

为什么我得到“;非静态字段、方法或属性需要对象引用';Photrax.App.DBPath.get'&”;

DBPathApp的非静态属性。为了访问它,您需要一个App的实例。您正试图像访问静态属性一样访问它。

如果数据库的路径在应用程序中没有更改(例如,您没有多个数据库,每个数据库都由不同的App实例引用,则可以考虑将该属性设置为静态。