-1

利用此处的代码,我将其添加到 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 构造函数提供所谓的全局数据库路径?

4

1 回答 1

1

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

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

于 2014-10-18T00:04:11.437 回答