C# 非静态方法上的编译错误CS0176(无法访问静态成员)
我的问题如下: 当我尝试编译我的c#应用程序时,它会遇到以下异常: 无法访问静态成员“ResponseManager.manage(Response)” 引用实例;改为使用类型名称限定它 关于这个C# 非静态方法上的编译错误CS0176(无法访问静态成员),c#,visual-studio-2017,C#,Visual Studio 2017,我的问题如下: 当我尝试编译我的c#应用程序时,它会遇到以下异常: 无法访问静态成员“ResponseManager.manage(Response)” 引用实例;改为使用类型名称限定它 关于这个 ResponseManager responseManager = new ResponseManager(); responseManager.manage(response); 如您所见,我正在使用ResponseManager的一个新实例 以下是他的“管理”方法的声明: 公共作废管理(响应)
ResponseManager responseManager = new ResponseManager();
responseManager.manage(response);
如您所见,我正在使用ResponseManager的一个新实例
以下是他的“管理”方法的声明:
公共作废管理(响应)
我签入了project,它是唯一一个使用此名称的方法,她不是静态的,ResponseManager没有任何静态字段/方法,但它不会编译
当我试图在代码中的任何地方(声明和用法)重命名我的方法时,我得到以下错误:
ResponseManager不包含“sometest”和“no”的定义
扩展方法“sometest”接受类型为的第一个参数
找不到“ResponseManager”(您是否缺少使用
指令或组件引用?)
我希望我提供了足够的信息来帮助我解决这个问题。
非常感谢
编辑:
public class ResponseManager
{
TransactionDAO transactionDAO = new TransactionDAO();
LignesDAO ligneDAO = new LignesDAO();
SimDAO simDAO = new SimDAO();
MailSender mailSender = new MailSender();
HttpClient httpClient = new HttpClient();
ApplicationDAO appDAO = new ApplicationDAO();
//RENAME !!!!!!!!
public void manage(Response response)
{
if (response.responseStatus.status == "SUCCESS")
{
transactionDAO.updateTransactionById(response.header.transactionId, response.responseStatus.status);
string type = transactionDAO.getTransactionTypeById(response.header.transactionId);
if(type != null) {
switch (type) {
case "activate":
ligneDAO.setActivatedSim(response.simIdendity.simSerial);
//simDAO.setActivatedSim(response.simIdendity.simSerial);
break;
case "suspend":
ligneDAO.setSuspendedSim(response.simIdendity.simSerial);
//simDAO.setSuspendedSim(response.simIdendity.simSerial);
break;
case "reactivate":
ligneDAO.setActivatedSim(response.simIdendity.simSerial);
//simDAO.setActivatedSim(response.simIdendity.simSerial);
break;
case "detail-subscription":
break;
case "detail-sim":
//Mapping between Response and Sim classes
break;
case "bar" :
break;
case "unbar" :
break;
}
}
int appId = transactionDAO.getIdAppFromTransactionId(response.header.transactionId);
string url = appDAO.getUrlFromAppId(appId);
httpClient.send(null, url);
}
else
{
transactionDAO.updateTransactionById(response.header.transactionId, response.responseStatus.status, response.responseStatus.errorCode);
string type = transactionDAO.getTransactionTypeById(response.header.transactionId);
mailSender.createTransatelProvisionningErrorMail(response.header.transactionId, response.simIdendity.simSerial, response.simIdendity.msisdn, type, response.responseStatus.errorCode, response.responseStatus.reason);
}
}
}
如果确定问题不在代码中,请尝试卸载并重新加载项目或重新启动VS2017。它有时能解决问题。请提供ResponseManager的代码。您可以尝试使用干净的解决方案。构建>清洁溶液
您还可以尝试删除解决方案中的所有obj文件夹并重新生成解决方案。能否提供更多代码?至少有ResponseManager类。解决方案中是否有其他ResponseManager类?如果选择行
responseManager.manage(响应)
并将光标放在manage和F12上。它是否属于您期望的类和方法?@Stuart它是唯一一个具有此名称和此方法(是的,它属于正确的方法)的方法尝试了清理解决方案,删除了所有obj文件夹?@Stuart我尝试了自动清理,它是否自动删除了所有obj文件夹?我已经尝试重新启动计算机并用Rider启动了它(jetbrain的C#ide)根据提供的信息,我认为它应该可以正常工作。解决方案中是否有其他可能包含其他ResponseManager类的项目参考?手动清理解决方案刚刚完成了工作,谢谢,尽管欢迎!