C# WCF服务有一个返回类型,但客户端看到另一个
mi wcf服务有一个名为Richiedicarta的函数,它返回一个列表,但当我在客户端实现它时,它表示它无法隐式转换type system.collections.generics.List中的类型字符串。 下面是WCF函数代码C# WCF服务有一个返回类型,但客户端看到另一个,c#,wcf,return,C#,Wcf,Return,mi wcf服务有一个名为Richiedicarta的函数,它返回一个列表,但当我在客户端实现它时,它表示它无法隐式转换type system.collections.generics.List中的类型字符串。 下面是WCF函数代码 public List<string> richiedicarta(int utilcode) { List<string> card = new List<string>(); Rando
public List<string> richiedicarta(int utilcode)
{
List<string> card = new List<string>();
Random rand = new Random();
switch (utilcode)
{
case 0:
for (int i = 0; i < 4; i++)
{
int indice = rand.Next(0, max-1);
card.Add(carta[indice]);
carta.Remove(carta[indice]);
max--;
return card;
}
break; //prima mano
case 1: briscola = carta[rand.Next(0, max-1)]; card.Add(briscola); max--; break; //briscola
case 2: if (carta.Count == 0) { card.Add(briscola); } else { card.Add(carta[rand.Next(0, max-1)]); } max--; break; //nuova mano
}
return card;
}
static List<String> ricevicarte(int param)
{
List<string> carte = cl.richiedicarta(param); // here it gives that error
List<String> cards = null;
for(int i=0; i<3; i++)
{
if(carte[i]==" ")
{
carte[i] = null;
}
else
{
cards.Add(carte[i]);
}
}
return cards;
}
public List richiedicarta(int-utilcode)
{
列表卡=新列表();
Random rand=新的Random();
开关(utilcode)
{
案例0:
对于(int i=0;i<4;i++)
{
int indice=下一个随机数(0,最大值-1);
卡片添加(卡片[标识]);
carta.Remove(carta[indice]);
马克斯;
回程卡;
}
break;//prima mano
案例1:briscola=carta[rand.Next(0,max-1)];card.Add(briscola);max--;break;//briscola
案例2:if(carta.Count==0){card.Add(briscola);}else{card.Add(carta[rand.Next(0,max-1)];}max--;break;//nuova mano
}
回程卡;
}
这是客户端函数代码
public List<string> richiedicarta(int utilcode)
{
List<string> card = new List<string>();
Random rand = new Random();
switch (utilcode)
{
case 0:
for (int i = 0; i < 4; i++)
{
int indice = rand.Next(0, max-1);
card.Add(carta[indice]);
carta.Remove(carta[indice]);
max--;
return card;
}
break; //prima mano
case 1: briscola = carta[rand.Next(0, max-1)]; card.Add(briscola); max--; break; //briscola
case 2: if (carta.Count == 0) { card.Add(briscola); } else { card.Add(carta[rand.Next(0, max-1)]); } max--; break; //nuova mano
}
return card;
}
static List<String> ricevicarte(int param)
{
List<string> carte = cl.richiedicarta(param); // here it gives that error
List<String> cards = null;
for(int i=0; i<3; i++)
{
if(carte[i]==" ")
{
carte[i] = null;
}
else
{
cards.Add(carte[i]);
}
}
return cards;
}
静态列表ricevicote(int参数)
{
List carte=cl.richiedicarta(param);//这里给出了错误
列表卡=空;
对于(int i=0;i更新您的服务引用
。确保取消选中“引用程序集中的重用类型”复选框,并将新服务的地址放入“地址”文本框。错误是什么?客户端的WCF代理合约看起来像什么?看起来像是合约不匹配。无法隐式转换类型类型system.collections.generics.List中的字符串。很抱歉,我写的问题不好,我写了,它已经工作了,但现在返回类型是“BriscolaService.RichiedCartResponse”,它不会接受我的参数,因为“无法将int转换为briscolaWCFdef_Client.BriscolaService.RichiedCartRequest”您需要创建该类型的对象并分配属性,然后passi发现我选中了“始终生成消息契约”,没有它,它不需要该类型的对象,但我的WCF函数的返回提示已从字符串更改为字符串[],问题仍然存在。问题中写入了它