2014-02-13 136 views
1

爲什麼我得到這個錯誤:WCF無法實現接口 - 沒有匹配的返回類型

Error 1 'JoomlaWebservice.KundeService' does not implement interface member 'JoomlaWebservice.ServiceInterface.HentOpgave(int)'. 'JoomlaWebservice.KundeService.HentOpgave(int)' cannot implement 'JoomlaWebservice.ServiceInterface.HentOpgave(int)' because it does not have the matching return type of 'JoomlaWebservice.Opgave'. C:\Visual Studio 2010\Projects\JoomlaWebservice\JoomlaWebservice\KundeService.svc.cs 12 18 JoomlaWebservice

代碼(服務):

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Text; 

namespace JoomlaWebservice 
{ 
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together. 
    public class KundeService : ServiceInterface 
    { 

     LIMSEntities LimsEntities; 

     public class OpgaveOverskrift 
     { 
      public int id { get; set; } 
      public string nummer { get; set; } 
      public string sagsnavn { get; set; } 
      public string sagsnr { get; set; } 
      public string matrix { get; set; } 
      public string status { get; set; } 

     } 

     public class Opgave 
     { 

      public int id { get; set; } 
      public string nummer { get; set; } 
      public string sagsnavn { get; set; } 
      public string sagsnr { get; set; } 
      public string journalnr { get; set; } 
      public string omnummer { get; set; } 
      public string matrix { get; set; } 
      public string status { get; set; } 
      public string anlaeg { get; set; } 
      public string anlaeg_kode2 { get; set; } 
      public bool akkrediteret { get; set; } 
      public string modtagdato { get; set; } 
      public string analysedato { get; set; } 
      public string rapportdato { get; set; } 
      public int antalproever { get; set; } 
      public string preopbevar { get; set; } 
      public int antalbilag { get; set; } 
      public string rapportnoter { get; set; } 
      public string afssagsbehandler_navn { get; set; } 
      public string afssagsbehandler_titel { get; set; } 
      public string hmansvarlig_navn { get; set; } 
      public string hmansvarlig_titel { get; set; } 

      public string kontakt { get; set; } //k0_kontakt01 
      public string afdeling { get; set; } 
      public string adresse { get; set; } 
      public string nation { get; set; } 
      public string postnummer { get; set; } 
      public string distrikt { get; set; } 

      public string postdist { get; set; } //std00002 

     } 

     public class Parameter 
     { 
      public int id { get; set; } 
      public int o1id { get; set; } 
      public string minimum { get; set; } 
      public string vejledende { get; set; } 
      public string maksimum { get; set; } 
      public string bemaerkning { get; set; } 
      public string parameter { get; set; } 
      public int metoderf { get; set; } 
      public int raekkefoelge { get; set; } 
      public string enhed { get; set; } 
      public string metoderef { get; set; } 
      public string detektionsgraense { get; set; } 
      public string nedremaalegraense { get; set; } 
      public string oevremaalegraense { get; set; } 
      public string knaek { get; set; } 
      public string nedreusikkerhedabs { get; set; } 
      public string nedreusikkerhedrel { get; set; } 
      public string oevreusikkerhedabs { get; set; } 
      public string oevreusikkerhedrel { get; set; } 
      public string resultat { get; set; } 
      public int a0id { get; set; } 
      public bool akkrediteret { get; set; } 
      public string analysested { get; set; } 
      public string kommentar { get; set; } 

      public int laboratorieid { get; set; } //a_internmetode 

      public string danakkode { get; set; } //k0_kontakt01 

     } 

     public List<Parameter> Parametre(int o1id) 
     { 

      using (LimsEntities = new LIMSEntities()) 
      { 
       return (from i in LimsEntities.O2_Parameter01 
         where i.O1ID == o1id 
         select new Parameter() 
         { 
          a0id = i.A0ID.HasValue ? (int)i.A0ID : 0, 
          akkrediteret = i.Akkrediteret.HasValue ? (bool)i.Akkrediteret : false, 
          analysested = i.AnalyseSted, 
          bemaerkning = i.Bemærkning, 
          detektionsgraense = i.Detektionsgrænse, 
          enhed = i.Enhed, 
          id = i.ID, 
          knaek = i.Knæk, 
          kommentar = i.Kommentar, 
          maksimum = i.Maksimum, 
          metoderef = i.Metoderef, 
          metoderf = i.MetodeRf.HasValue ? (int)i.MetodeRf : 1, 
          minimum = i.Minimum, 
          nedremaalegraense = i.NedreMålegrænse, 
          nedreusikkerhedabs = i.NedreUsikkerhedAbs, 
          nedreusikkerhedrel = i.NedreUsikkerhedRel, 
          o1id = i.O1ID, 
          oevremaalegraense = i.ØvreMålegrænse, 
          oevreusikkerhedabs = i.ØvreUsikkerhedAbs, 
          oevreusikkerhedrel = i.ØvreUsikkerhedRel, 
          parameter = i.Parameter, 
          raekkefoelge = i.Rækkefølge.HasValue ? (int)i.Rækkefølge : 1, 
          resultat = i.Resultat, 
          vejledende = i.VejledendeVærdi, 
          laboratorieid = i.ParameterIAnalyser.A_InternMetode.K0ID.HasValue ? (int)i.ParameterIAnalyser.A_InternMetode.K0ID : 0, 
          danakkode = i.ParameterIAnalyser.A_InternMetode.K0_Kontakt01.DANAKkode 

         }).ToList();  
      }     
     } 

     public class Proeve 
     { 

      public int id { get; set; } 
      public int o0id { get; set; } 
      public string omfang { get; set; } 
      public string formaal { get; set; } 
      public string proevetager { get; set; } 
      public string udtagdatostart { get; set; } 
      public string udtagdatoslut { get; set; } 
      public string dybde { get; set; } 
      public string proeveid { get; set; } 

      public string abtekst { get; set; } //ab_formål 

     } 

     public List<Proeve> Proever(int o0id) 
     { 
      using (LimsEntities = new LIMSEntities()) 
      { 
       return (from i in LimsEntities.O1_Prøve 
         join f in LimsEntities.AB_Formål on i.Formål equals f.ID.ToString() into fs 
         from f in fs.DefaultIfEmpty() 
         where i.O0ID == o0id 
         select new Proeve() 
         { 
          id = i.ID, 
          o0id = i.O0ID, 
          omfang = i.Omfang, 
          formaal = i.Formål, 
          proevetager = i.Prøvetager, 
          udtagdatostart = i.UdtagDatoStart, 
          udtagdatoslut = i.UdtagDatoSlut, 
          dybde = i.Dybde, 
          proeveid = i.PrøveID, 
          abtekst = f == null ? "" : f.Tekst 

         }).ToList(); 
      } 
     } 

     public int Login(String username, String password) 
     { 
      LimsEntities = new LIMSEntities(); 

      IEnumerable<K1_Kontaktperson01> kontakter = from k in LimsEntities.K1_Kontaktperson01 
                 where k.HSBrugernavn == username && k.HSAdgangskode == password 
                 select k; 
      return kontakter.FirstOrDefault().K0ID; 
     } 

     public List<OpgaveOverskrift> OpgaveOverskrifter(int k0id) 
     { 

      using (LimsEntities = new LIMSEntities()) 
      { 
       return (from i in LimsEntities.O0_Opgave01 
         where i.K0ID == k0id 
         select new OpgaveOverskrift() 
         { 
          id = i.ID, 
          nummer = i.Nummer, 
          sagsnavn = i.Sagsnavn, 
          sagsnr = i.SagsNr, 
          matrix = i.Matrix, 
          status = i.Status 
         }).ToList(); 
      } 

     } 

     public Opgave HentOpgave(int o0id) 
     { 
      /* Opgave test = new Opgave(); 
      return test;*/ 

      using (LimsEntities = new LIMSEntities()) 
      { 
       return (from i in LimsEntities.O0_Opgave01 
         where i.ID == o0id 
         select new Opgave() 
         { 
          id = i.ID, 
          nummer = i.Nummer, 
          sagsnavn = i.Sagsnavn, 
          sagsnr = i.SagsNr, 
          matrix = i.Matrix, 
          journalnr = i.JournalNr, 
          omnummer = i.OMNummer, 
          status = i.Status, 
          anlaeg = i.Anlæg, 
          anlaeg_kode2 = i.Anlæg_Kode2, 
          akkrediteret = i.Akkrediteret, 
          modtagdato = i.ModtagDato, 
          analysedato = i.AnalyseDato, 
          rapportdato = i.RapportDato, 
          antalproever = i.AntalPrøver.HasValue ? (int)i.AntalPrøver.Value : 0, 
          preopbevar = i.PreOpbevar, 
          antalbilag = i.AntalBilag.HasValue ? (int)i.AntalBilag.Value : 0, 
          rapportnoter = i.RapportNoter, 
          afssagsbehandler_navn = i.AFSSagsbehandler_Navn, 
          afssagsbehandler_titel = i.AFSSagsbehandler_Titel, 
          hmansvarlig_navn = i.HMAnsvarlig_Navn, 
          hmansvarlig_titel = i.HMAnsvarlig_Titel, 
          kontakt = i.K0_Kontakt01.Kontakt, 
          afdeling = i.K0_Kontakt01.Afdeling, 
          adresse = i.K0_Kontakt01.Adresse, 
          nation = i.K0_Kontakt01.Nation, 
          postnummer = i.K0_Kontakt01.Postnummer, 
          distrikt = i.K0_Kontakt01.Distrikt, 
          postdist = i.K0_Kontakt01.std00002.postdist 

         }).FirstOrDefault(); 
      } 
     }      

    } 
} 

碼(接口):

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Text; 

namespace JoomlaWebservice 
{ 
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. 
    [ServiceContract] 
    public interface ServiceInterface 
    { 

     [OperationContract] 
     int Login(String username, String password); 

     [OperationContract] 
     Opgave HentOpgave(int o0id); 

     // TODO: Add your service operations here 
    } 


    // Use a data contract as illustrated in the sample below to add composite types to service operations. 
    [DataContract] 
    public class OpgaveOverskrift 
    { 
     [DataMember] 
     public int id { get; set; } 
     [DataMember] 
     public string sagsnavn { get; set; } 
     [DataMember] 
     public string sagsnr { get; set; } 
     [DataMember] 
     public string matrix { get; set; } 
     [DataMember] 
     public string status { get; set; } 

    } 

    [DataContract] 
    public class Opgave 
    { 
     [DataMember] 
     public int id { get; set; } 
     [DataMember] 
     public string nummer { get; set; } 
     [DataMember] 
     public string sagsnavn { get; set; } 
     [DataMember] 
     public string sagsnr { get; set; } 
     [DataMember] 
     public string journalnr { get; set; } 
     [DataMember] 
     public string omnummer { get; set; } 
     [DataMember] 
     public string matrix { get; set; } 
     [DataMember] 
     public string status { get; set; } 
     [DataMember] 
     public string anlaeg { get; set; } 
     [DataMember] 
     public string anlaeg_kode2 { get; set; } 
     [DataMember] 
     public bool akkrediteret { get; set; } 
     [DataMember] 
     public string modtagdato { get; set; } 
     [DataMember] 
     public string analysedato { get; set; } 
     [DataMember] 
     public string rapportdato { get; set; } 
     [DataMember] 
     public int antalproever { get; set; } 
     [DataMember] 
     public string preopbevar { get; set; } 
     [DataMember] 
     public int antalbilag { get; set; } 
     [DataMember] 
     public string rapportnoter { get; set; } 
     [DataMember] 
     public string afssagsbehandler_navn { get; set; } 
     [DataMember] 
     public string afssagsbehandler_titel { get; set; } 
     [DataMember] 
     public string hmansvarlig_navn { get; set; } 
     [DataMember] 
     public string hmansvarlig_titel { get; set; } 

     [DataMember] 
     public string kontakt { get; set; } //k0_kontakt01 
     [DataMember] 
     public string afdeling { get; set; } 
     [DataMember] 
     public string adresse { get; set; } 
     [DataMember] 
     public string nation { get; set; } 
     [DataMember] 
     public string postnummer { get; set; } 
     [DataMember] 
     public string distrikt { get; set; } 

     [DataMember] 
     public string postdist { get; set; } //std00002 
    } 

    [DataContract] 
    public class Proeve 
    { 

     [DataMember] 
     public int id { get; set; } 
     [DataMember] 
     public int o0id { get; set; } 
     [DataMember] 
     public string omfang { get; set; } 
     [DataMember] 
     public string formaal { get; set; } 
     [DataMember] 
     public string proevetager { get; set; } 
     [DataMember] 
     public string udtagdatostart { get; set; } 
     [DataMember] 
     public string udtagdatoslut { get; set; } 
     [DataMember] 
     public string dybde { get; set; } 
     [DataMember] 
     public string proeveid { get; set; } 

     [DataMember] 
     public string abtekst { get; set; } //ab_formål 

    } 

    [DataContract] 
    public class Parameter 
    { 
     [DataMember] 
     public int id { get; set; } 
     [DataMember] 
     public int o1id { get; set; } 
     [DataMember] 
     public string minimum { get; set; } 
     [DataMember] 
     public string vejledende { get; set; } 
     [DataMember] 
     public string maksimum { get; set; } 
     [DataMember] 
     public string bemaerkning { get; set; } 
     [DataMember] 
     public string parameter { get; set; } 
     [DataMember] 
     public int metoderf { get; set; } 
     [DataMember] 
     public int raekkefoelge { get; set; } 
     [DataMember] 
     public string enhed { get; set; } 
     [DataMember] 
     public string metoderef { get; set; } 
     [DataMember] 
     public string detektionsgraense { get; set; } 
     [DataMember] 
     public string nedremaalegraense { get; set; } 
     [DataMember] 
     public string oevremaalegraense { get; set; } 
     [DataMember] 
     public string knaek { get; set; } 
     [DataMember] 
     public string nedreusikkerhedabs { get; set; } 
     [DataMember] 
     public string nedreusikkerhedrel { get; set; } 
     [DataMember] 
     public string oevreusikkerhedabs { get; set; } 
     [DataMember] 
     public string oevreusikkerhedrel { get; set; } 
     [DataMember] 
     public string resultat { get; set; } 
     [DataMember] 
     public int a0id { get; set; } 
     [DataMember] 
     public bool akkrediteret { get; set; } 
     [DataMember] 
     public string analysested { get; set; } 
     [DataMember] 
     public string kommentar { get; set; } 

     [DataMember] 
     public int laboratorieid { get; set; } //a_internmetode 

     [DataMember] 
     public string danakkode { get; set; } //k0_kontakt01 

    }    

} 

回答

1

你正在返回JoomlaWebservice.KundeService.Opgave,而不是JoomlaWebservice.Opgave。您需要更改代碼以直接返回合同或在創建的對象和合同之間進行映射。

+0

謝謝,澄清了它。通過從Kundeservice類中刪除類並直接使用合約來解決。 – Veshkuul

相關問題