Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Nuno

Enviar lista de objectos para WCF Web Service

Mensagens Recomendadas

Nuno    0
Nuno

Boa pessoal,

Preciso de criar um Web service WCF que recebe uma lista de objectos e insere-a numa base de dados postgresql.

Para testar criei uma app cliente vb.net, mas algo não está a correr como esperado.

Até ao momento tenho o seguinte condigo implementado:

IService.cs

public interface IService1
{
[OperationContract]
int InsertClients(MyListofClients clients);
}

[DataContract]
public class MyListofClients
{
[DataMember]
List<Client> Clients { get; set; }
}

[DataContract]
public class Client
{
[DataMember]
public int clientId { get; set; }
[DataMember]
public string ClientName { get; set; }
[DataMember]
public List<Client> Clients { get; set; }
}
}

Servic1.svc

public int InsertClients(MyListofClients clients)
{
	int res, result;
	using (NpgsqlConnection conn = new NpgsqlConnection(connStringFarm))
	{
		conn.Open();
		List<MyListofClients> firstStringList = new		List<MyListofClients>();
		string cmdStr = String.Format("Insert Into table (x1,x2)" +
									 " VALUES(@x1,@x2)");

		foreach (var item in firstStringList)
		{
			NpgsqlCommand cmd = new NpgsqlCommand(cmdStr, conn);
			result = cmd.ExecuteNonQuery();
		}

		conn.Close();
		return 0;
	 }

App Client

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles	Button1.Click
Dim db_comm As New NpgsqlCommand
Dim Reader As NpgsqlDataReader


Dim query As String = "Select code1,name1 from clientes"
db_comm.CommandText = query
db_comm.Connection = conn
conn.open
Reader = db_comm.ExecuteReader

Dim list As New List(Of String)

While Reader.Read
	list.Add(Reader.GetString("code1"))
	list.Add(Reader.GetString("name1"))
End While

Dim API As APICS.Service1Client = New APICS.Service1Client()
API.InsertClientsAsync(list)
End Sub

ERROR Value of type 'List(Of String)' cannot be converted to 'MyListofClients'.

Penso que o problema tem a ver com a list que tem de ser do tipo 'MyListofClients'.

Dim list As New List(Of APICS.MyListofClients)

no entanto não consigo perceber como devo enviar a lista desta forma

Alguma dica??

Editado por Nuno

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.