2014-10-18 1 views
-1

Используя код here, я добавил это App.xaml.cs:Почему я получаю «Ссылка на объект требуется для нестатического поля, метода или свойства« Photrax.App.DBPath.get »?

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» джазом?

Что мне нужно сделать, чтобы предоставить предположительно глобальный путь db к конструктору SQLiteConnection?

+1

ли пытаться искать – user2864740

+0

http://stackoverflow.com/questions/2051558/an-object-reference-is-required-for-the-non-static-field-method-or-property – user2864740

ответ

1

DBPath является нестатическим свойством App. Чтобы получить к нему доступ, вам понадобится экземпляр App. Вы пытаетесь получить к нему доступ, как статическое свойство.

Если путь к БД не изменяется в приложении (например, вы не имеете несколько баз данных, каждую ссылку на другой экземпляре App, вы могли бы рассмотреть возможность сделать это свойство статического.

+0

Хорошо, я думал «Приложение», было бы что-то, что было «всегда вокруг». Да, я сделал это статичным. –