2017-06-08 3 views
-2

mein Problem ist folgendes:Kompilierung Fehler CS0176 auf nicht statische Methode (statisches Element nicht zugegriffen werden kann)

wenn ich versuche, meine C# apps zu kompilieren es in diese Ausnahme aus:

Statischer Member ' ResponseManager.manage (Response) 'kann nicht mit einer Instanzreferenz auf zugegriffen werden; qualifizieren sie mit einem Typnamen anstelle

auf dieser

ResponseManager responseManager = new ResponseManager(); 
responseManager.manage(response); 

Wie Sie verwende ich eine neue Instanz des ResponseManager sehen können.

hier ist sein „verwalten“ Methode Erklärung:

public void manage(Response response)

ich in Projekt überprüft und es ist die einzige Methode, mit diesem Namen, sie ist nicht statisch und ResponseManager haben keine statischen Felder/Methoden und Trotzdem wird es nicht kompiliert.

Wenn ich versuche, meine Methode überall in meinem Code (Deklaration und Verwendung) Ich erhalte den folgenden Fehler zu benennen:

ResponseManager keine Definition für ‚sometest‘ enthalten und keine Erweiterungsmethode ‚sometest‘ Annahme könnte ein erstes Argument vom Typ ‚ResponseManager‘ gefunden werden (möglicherweise fehlt eine using -Direktive oder ein Assemblyverweis?)

ich hoffe, dass ich genug Informationen zur Verfügung gestellt mich, dies zu beheben. Vielen Dank!


Edit:

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); 
     } 

    } 

} 
+1

Können Sie mehr Code bereitstellen? Mindestens ResponseManager-Klasse. – pablocity

+0

Haben Sie eine andere ResponseManager-Klasse in Ihrer Lösung? Wählen Sie die Zeile 'responseManager.manage (response); 'und setzen Sie den Cursor auf manage und F12. Geht es um die Klasse und Methode, die Sie erwarten? – Stuart

+0

@Stuart es ist das einzige mit diesem Namen und dieser Methode (und yup es geht zur richtigen Methode) – mJehanno

Antwort

1

Sie können eine saubere Lösung versuchen. Erstellen> Saubere Lösung.

Sie können auch versuchen, alle Obj-Ordner in Ihrer Lösungs- und Wiederherstellungslösung zu löschen.

+0

danke für Ihre Hilfe! – mJehanno

0

Wenn Sie sicher sind, dass das Problem nicht mit Ihrem Code ist als versuchen, Entladen und Neuladen der Projekt oder VS2017 neu zu starten. Es löst das Problem manchmal. Und bitte geben Sie den RespenseManager-Code an.

+0

Ich habe bereits versucht, meinen Computer neu zu starten und startete es mit Rider (jetbrain's C# ide) – mJehanno

+0

Auf der Grundlage der bereitgestellten Informationen, denke ich, sollte es gut funktionieren.Gibt es einen anderen Projektverweis innerhalb der Lösung, der eine andere ResponseManager-Klasse enthalten kann? – TheBinaryGuy

+0

manuelle Reinigung der Lösung hat einfach den Job, danke gedacht – mJehanno

Verwandte Themen