Interface implementation error in WCF

Asked

Viewed 127 times

-1

I’m making an example using WCF is generated me an error and I’m not able to figure out what could be wrong.

Error message:

Wcfservice.Service1 does not implement interface Member WCFService.IService1.BuscarPessoas(). Wcfservice.Service1.Searchpeople() cannot implement Wcfservice.Iservice1.Searchpeople() because it does not have the matching Return type of Wcfservice.pessoa.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace WCFService
{
    [DataContract]
    public class pessoa
    {
        [DataMember]
        public string Nome { get; set; }

        [DataMember]
        public string SobreNome { get; set; }

        [DataMember]
        public int Idade { get; set; }

    }
}


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

namespace WCFService
{

    // 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 IService1
    {

        [OperationContract]
        pessoa BuscarPessoas();

        [OperationContract]
        pessoa BuscarPessoaPorIdade(int idade);
    }

}

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

namespace WCFService
{
  name "Service1" in both code and config file together.
    public class Service1 : IService1
    {

        private List<pessoa> CriarListaPessoas()
        {

            List<pessoa> listaPessoas = new List<pessoa>()
            {
                new pessoa(){Nome="Caludia", SobreNome="Borges",Idade=25},
                new pessoa(){Nome="Jose", SobreNome="Borges",Idade=25},
                new pessoa(){Nome="Marços", SobreNome="Borges",Idade=25},
                new pessoa(){Nome="paulo", SobreNome="Borges",Idade=25},
                new pessoa(){Nome="Maria", SobreNome="Borges",Idade=25},
                new pessoa(){Nome="Marlon", SobreNome="Borges",Idade=25},
            };

            return listaPessoas;
        }


        public List<pessoa> BuscarPessoas()
        {
            return CriarListaPessoas();
        }

        public pessoa BuscarPessoaPorIdade(int idade)
        {
            return CriarListaPessoas().Find(pResult => pResult.Idade == idade);
        }

    }
}

1 answer

3


You define in the interface that the method BuscarPessoas must return the type pessoa but in the implementation is to return List<pessoa>

You must change the interface to:

public interface IService1
{
    [OperationContract]
    List<pessoa> BuscarPessoas();

    [OperationContract]
    pessoa BuscarPessoaPorIdade(int idade);
}
  • Ramaral, worked out very grateful for the help.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.