1

我正在尝试用 C# 编写一个项目 Windows 服务。

我想将文件夹复制到另一个目录。我写了代码,一切都很完美

DirectoryInfo source = new DirectoryInfo("C:\\belgeler");
DirectoryInfo target = new DirectoryInfo("E:\\Backup");

这是正确的实现,但是当我写这个时......

DirectoryInfo source = new DirectoryInfo(from_path);
DirectoryInfo target = new DirectoryInfo(to_path);

错误是“字段初始值设定项无法引用非静态字段、方法或属性“BACKUP(m​​yproject_name).Service1.veri”

//string to_path = Registry.LocalMachine.GetValue("ToPath").ToString();  
//string from_path = Registry.LocalMachine.GetValue("FromPath").ToString();

此代码块正在运行控制台应用程序,但在 Windows 服务中它不是。

4

2 回答 2

2

您的变量sourcetarget是您的类的成员变量。允许使用以下代码:

DirectoryInfo source = new DirectoryInfo("C:\\belgeler");
DirectoryInfo target = new DirectoryInfo("E:\\Backup");

这是允许的,因为它没有引用您的类的任何其他成员变量。但是当你尝试:

DirectoryInfo source = new DirectoryInfo(from_path);
DirectoryInfo target = new DirectoryInfo(to_path);

这引用了其他变量from_pathto_path这是不允许的。

将这些变量移动为局部变量,这应该可以解决您的问题。

于 2013-06-24T14:16:58.190 回答
0

您可以使用另一个字段作为参数来设置字段的值,您只需要在构造函数中执行此操作。这将确保以正确的顺序设置字段。

字段初始值设定项不能引用非静态字段、方法或属性

于 2013-06-24T14:17:59.410 回答