как мне вызвать мои функции в .net - PullRequest
0 голосов
/ 18 августа 2011

Я изучаю .net и пишу сервис, следуя инструкциям ниже http://www.beansoftware.com/NET-Tutorials/Create-Windows-Services.aspx

Служба windows успешно установлена ​​и тоже запускается. Но когда я изменяю имя файла, удаляю файл или добавляю файл, он не добавляет никакой информации в мой файл журнала, который находится в C: \ Folder \ FolderLog.txt

Я вижу 3 метода для FolderWatcher_ **, но я не вижу вызова тех, кто в коде. Я очень новичок в .net, поэтому я не уверен, как они называются

вот мой полный код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;

    namespace Watcher
    {
        public partial class Watcher : ServiceBase
        {
            public Watcher()
            {
                InitializeComponent();
            }

            protected override void OnStart(string[] args)
            {

            }

            protected override void OnStop()
            {
            }

            private void FolderWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
            {
                TextWriter writer = new StreamWriter("C:\\folder\\FolderLog.txt", true);
                writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been created. ");
                writer.Close();
            }

            private void FolderWatcher_Deleted(object sender, System.IO.FileSystemEventArgs e)
            {
                TextWriter writer = new StreamWriter("C:\\folder\\FolderLog.txt", true);
                writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been deleted. ");
                writer.Close();
            }

            private void FolderWatcher_Renamed(object sender, System.IO.RenamedEventArgs e)
            {
                TextWriter writer = new StreamWriter("C:\\folder\\log.txt", true);
                writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been renamed. ");
                writer.Close();
            }


        }
    }

Я следил за каждым шагом в этом уроке. Я не видел ничего, что описывает, как эти методы называются. Любая помощь будет отличной

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

В учебном пособии, вероятно, вы добавите FileSystemWatcher в поверхность режима разработки для своего сервиса.В режиме разработки выберите этот объект и в его обработчиках событий выберите соответствующие методы вашего класса.

1 голос
/ 18 августа 2011

Убедитесь, что вы зарегистрировали события экземпляра наблюдателя "FolderWatcher" в обработчиках событий в вашем коде, вы можете сделать это в конструкторе службы или в конструкторе службы, например:

public Watcher()
{
    InitializeComponent();

    FolderWatcher.Created += FolderWatcher_Created;//when created FolderWatcher_Created will be called
    FolderWatcher.Deleted += FolderWatcher_Deleted;//when deleted call FolderWatcher_Deleted will be called
    FolderWatcher.Renamed += FolderWatcher_Renamed;//when renamed FolderWatcher_Renamed will be called
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...