pcosta94 Posted January 9, 2016 at 07:32 PM Report Share #591720 Posted January 9, 2016 at 07:32 PM Boa tarde, estou com um problema numa aplicaçao que consome um webservice criado localmente. Um dos metodos do webservice deve devolver uma lista mas quando esse metodo é chamado e atribuido a uma lista na aplicação essa lista fica com tamanho 0. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WeatherConsumer.WeatherReference; using System.Diagnostics; namespace WeatherConsumer { public partial class Form1 : Form { public Form1() { InitializeComponent(); Service1Client servico = new Service1Client(); List<Temperatura> temps = new List<Temperatura>(); temps = servico.getTemperaturas().ToList(); int count = temps.Count; Debug.WriteLine(count); //List<Humidade> hums = servico.getHumidades().ToList(); //List<Pressao> press = servico.getPressoes().ToList(); } private void obterBtn_Click(object sender, EventArgs e) { if(!pressureBox.Checked && !temperatureBox.Checked && !pressureBox.Checked ) { MessageBox.Show("Non of the options were selected", "Error"); } else { //if(pressureBox.Checked) } } } } E a parte do webservice using System.Data.SqlClient; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Diagnostics; namespace WebServiceWeather { public class Service1 : IService1 { public string GetData(int value) { return string.Format("You entered: {0}", value); } public CompositeType GetDataUsingDataContract(CompositeType composite) { if (composite == null) { throw new ArgumentNullException("composite"); } if (composite.BoolValue) { composite.StringValue += "Suffix"; } return composite; } public List<Temperatura> getTemperaturas() { List<Temperatura> temps = new List<Temperatura>(); /*try { SqlConnection conn = null; conn = new SqlConnection(@"Data Source=(localdb)\ProjectsV12;Initial Catalog=BDProdutos;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False"); conn.Open(); string sql = "SELECT * FROM Temperature"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader reader = cmd.ExecuteReader(); if (cmd.ExecuteNonQuery() > 0) { while (reader.Read()) { Temperatura temp = null; temp.Data = (DateTime)reader.GetDateTime(1); temp.Temperature = (float)reader["Value"]; temps.Add(temp); Console.WriteLine(temp.Data); } } conn.Close(); } catch(Exception) { }*/ Temperatura tp1 = new Temperatura(); tp1.Data = new DateTime(2012,1,1); tp1.Temperature = 12.5F; Temperatura tp2 = new Temperatura(); tp2.Data = new DateTime(2012, 1, 1); tp2.Temperature = 12.8F; temps.Add(tp1); temps.Add(tp2); foreach (Temperatura item in temps ) { Debug.WriteLine(item.Data.ToString() + " " + item.Temperature +"\n"); } return temps; } E classe é esta [DataContract] public class Temperatura { float temperature = 0; DateTime date; [DataMember] public float Temperature { get { return temperature; } set { temperature = value; } } [DataMember] public DateTime Data { get { return date; } set { date = value; } } Link to comment Share on other sites More sharing options...
Guest Posted January 15, 2016 at 09:45 AM Report Share #592010 Posted January 15, 2016 at 09:45 AM (edited) Boas, Podes fazer debug no código do webservice? Verifica se o Objecto temps, quando faz o retorno, possui elementos. Se sim, se tem os 2 elementos que inseres. BTW: Verifica também se tens o método getTemperaturas() declarado na Interface do serviço. Cumps. Edited January 15, 2016 at 09:48 AM by Guest Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now