我的问题如下:
当我尝试编译我的c#apps时,它会遇到这个异常:
静态成员' ResponseManager.manage(响应)'无法访问 带有实例引用;使用类型名称来限定它
在此
ResponseManager responseManager = new ResponseManager();
responseManager.manage(response);
正如您所看到的,我正在使用ResponseManager的新实例。
这是他的"管理"方法的声明:
public void manage(Response response)
我检查了项目,它是唯一使用此名称的方法,她不是静态的,ResponseManager没有任何静态字段/方法,但它不会编译。
当我尝试在我的代码(声明和用法)中的任何地方重命名我的方法时,我收到以下错误:
ResponseManager不包含' sometest'的定义。和不 扩展方法' 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);
}
}
}
答案 0 :(得分:1)
您可以尝试做一个干净的解决方案。构建>清洁解决方案。
您还可以尝试删除解决方案中的所有obj文件夹并重建解决方案。
答案 1 :(得分:0)
如果您确定问题与您的代码无关,请尝试卸载和重新加载项目或重新启动VS2017。它有时解决了这个问题。请提供RespnseManager的代码。