C# 如何在.net中调用函数

C# 如何在.net中调用函数,c#,.net,visual-studio-2010,c#-4.0,C#,.net,Visual Studio 2010,C# 4.0,我正在学习.net并按照下面的教程编写服务 windows服务已成功安装并启动。但是,当我更改文件名、删除文件或添加文件时,它不会将任何信息添加到我的日志文件中 C:\Folder\FolderLog.txt 我看到了FolderWatcher的3个方法,但在代码中没有看到对这些方法的调用。我对.net非常陌生,所以我不确定它们是如何命名的 这是我的完整代码 using System; using System.Collections.Generic; using System.Componen

我正在学习.net并按照下面的教程编写服务

windows服务已成功安装并启动。但是,当我更改文件名、删除文件或添加文件时,它不会将任何信息添加到我的日志文件中 C:\Folder\FolderLog.txt

我看到了FolderWatcher的3个方法,但在代码中没有看到对这些方法的调用。我对.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();
            }


        }
    }

我遵循了该教程中的每一个步骤。我没有看到任何描述如何调用这些方法的内容。任何帮助都会很好

请确保将watcher实例“
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
}

确保将watcher实例“
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
}

本教程可能会让您在服务的设计模式界面中添加一个
FileSystemWatcher
。在设计模式下,选择该对象,并在其事件处理程序中选择类的适当方法。

本教程可能会让您在设计模式界面中为服务添加一个
FileSystemWatcher
。在设计模式下,选择该对象并在其事件处理程序中选择类的适当方法。

可能,我不确定,因为我从未创建过服务,可能存在权限问题。Windows7特别是在权限方面有点严格(更好),如果您不是管理员,就不能在某些路径上写入。希望在某种程度上有所帮助您是否遵循了教程中的第6步-将设计师创建的FolderWatcher与上面显示的事件处理程序挂钩?可能吧,我不确定,因为我从未创建过服务,可能存在权限问题。Windows7特别是在权限方面有点严格(更好),如果您不是管理员,就不能在某些路径上写入。希望在某些方面有帮助您是否遵循了教程中的步骤6-将设计师创建的FolderWatcher挂接到上面显示的事件处理程序?我这里有一个类似的问题,您可能也可以在那里提供帮助。谢谢,我这里有一个类似的问题,也许你也可以帮忙。谢谢