我真的需要您的帮助,并弄清楚这一点。
我的项目:AccessProjectMap-- MainClass.cs-- ErrorLog.cs (public)ThreadProjectMap-- StartThread.cs
我想在项目启动时将StartThread
设置为我的默认项目。现在,我的ThreadProjectMap中需要ErrorLog.cs文件。我做了一个参考,我实际上可以说ErrorLog log = new ErrorLog();
也可以。当我尝试在MainClass.cs
中使用ErrorLog时,它也正在工作。
但是我不能在main或DoThreading函数内部使用log
。
class StartThread {
static string threadRefresh = ConfigurationManager.AppSettings.Get("refreshTime").ToString();
Access ac = new Access();
ErrorLog log = new ErrorLog();
static void Main(String[] args) {
log.LogMessageToFile("== Start Main() ==");
Thread t = new Thread(new ThreadStart(DoThreading));
t.Start();
Console.Read();
}
static void DoThreading() {
int refresh = 1;
while (true) {
Console.WriteLine("Test");
log.LogMessageToFile("== Test - inside Thread ==");
Thread.Sleep(1000);
}
}
}
最佳答案
问题不是由于不同的项目/命名空间,而是您试图以静态方法访问实例成员。
使您的log
字段static
,它应该可以正常编译。
static ErrorLog log = new ErrorLog(); //Here, make it static
static void Main(String[] args) {
log.LogMessageToFile("== Start Main() ==");
Thread t = new Thread(new ThreadStart(DoThreading));
t.Start();
Console.Read();
}
关于c# - 从另一个Project C#调用类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32335658/