关于WCF服务接口调用

mengyao_claire 2012-08-17 10:23:15
WCF没太接触过 想知道web service调用怎么声明
比如按一个按键调用到一个listview里 填表我会 前面怎么写
web references里我命名的abc

private void button2_Click(object sender, EventArgs e)
{

}
...全文
416 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengyao_claire 2012-08-21
  • 打赏
  • 举报
回复
自己顶一下= =
sunny007sun 2012-08-17
  • 打赏
  • 举报
回复




1添加服务器应用
2、声明调用方法
////调用web service服务
public static string WcfAddress;///web service地址
public static WebServiceDataSoapClient GetServiceClient()
{
EndpointAddress address = new EndpointAddress(new Uri(WcfAddress + "WebServiceData.asmx"));////WebServiceData.asmx web service文件名
WebServiceDataSoapClient Cilent = new WebServiceDataSoapClient("WebServiceDataSoap", address);


foreach (OperationDescription op in Cilent.Endpoint.Contract.Operations)
{
DataContractSerializerOperationBehavior dataContractBehavior = op.Behaviors.Find<DataContractSerializerOperationBehavior>() as DataContractSerializerOperationBehavior;
if (dataContractBehavior != null)
{
dataContractBehavior.MaxItemsInObjectGraph = 2147483647;
}
}


return Cilent;

}


3、声明服务
WebServiceDataSoapClient client = GetServiceClient();

4、调用接口方法

objct obj= client.getModel()///getModel接口中的方法名


sunny007sun 2012-08-17
  • 打赏
  • 举报
回复
private void button2_Click(object sender, EventArgs e)
{

// listview样式设置
listView1.GridLines = true;
listView1.FullRowSelect = true;
listView1.View = View.Details;
listView1.Scrollable = false;
listView1.MultiSelect = false;
listView1.HeaderStyle = ColumnHeaderStyle.Clickable;
// 表头设置
listView1.Columns.Add("ID", 50, HorizontalAlignment.Center);
listView1.Columns.Add("姓名", 50, HorizontalAlignment.Center);
listView1.Columns.Add("性别", 50, HorizontalAlignment.Center);
listView1.Columns.Add("年龄", 50, HorizontalAlignment.Center);
listView1.Columns.Add("学校", 150, HorizontalAlignment.Center);
listView1.Columns.Add("联系电话", 150, HorizontalAlignment.Center);



List<Model> strlist = new List<Model>();///Model 你的实体
strlist = aaaaa.getModel();///aaaaa你的web service 接口中的方法


listView1.Items.Clear();
foreach (Modeli in strlist )
{
ListViewItem item = new ListViewItem();
item.SubItems.Clear();
item.Text = i.Id;
item.SubItems.Add(i.Name);
item.SubItems.Add(i.Gender);
item.SubItems.Add(i.Age.ToString());
item.SubItems.Add(i.University);
item.SubItems.Add(i.Phone);
listView1.Items.Add(item);
}

}
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

abc.在之后在智能提示里找生成的代理类。。应该是 什么 什么soapclient

代理类定义在Reference.cs中。
[/Quote]

他就是智能生成的里面没有Service1Client= =我表示WCF这块就完全没学过。。。就是偶尔这么一用 啥都不知道
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

引用 1 楼 的回复:

wcf 配置及调用方法
http://download.csdn.net/detail/sunny007sun/3802412

web service 和WCF调用类似!


...你编一段我这程序传上去挂10分我下来看看行吗 我着急用= =



把你你需求说明白!!!!!
[/Quote]

作业是一个winform程序 里面有个listview控件 里面的数据要从这个abc这里调用 按一个键调用那种 private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
abc.GetEnableSendAgentCompletedEventArgs

}


那个类namespace Ciming.Exchanger.Domain
{
public enum AgentStatusEnum
{
过时未更新 = 1,
节点通 = 2,
数据库不通 = 3
}
[Serializable]
public class AgentStatus:IComparer<AgentStatus>
{
public string AgentId;
public string AgentName;
public string AgentUrl;
//更新时间
public DateTime UpdateDate;

//目前数据池的长度
public int DataLength;

public string StatusType;

public override bool Equals(object obj)
{
if (obj != null)
{
if (obj is AgentStatus)
{
if (((AgentStatus) obj).AgentId == this.AgentId)
{
return true;
}
}
}
return false;
}

public int Compare(AgentStatus x, AgentStatus y)
{
if (x==null)
{
return -1;
}
if (y==null)
{
return 1;
}
return x.DataLength.CompareTo(y.DataLength);
}
}
}

服务引用的地址是http://10.10.10.249:9900/GetEnableSendAgentService/metadata

写到 private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
写到这里 那个怎么调用 麻烦写一下 快要交了= =没时间研究了...

}
宝_爸 2012-08-17
  • 打赏
  • 举报
回复
abc.在之后在智能提示里找生成的代理类。。应该是 什么 什么soapclient

代理类定义在Reference.cs中。
sunny007sun 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

wcf 配置及调用方法
http://download.csdn.net/detail/sunny007sun/3802412

web service 和WCF调用类似!


...你编一段我这程序传上去挂10分我下来看看行吗 我着急用= =
[/Quote]


把你你需求说明白!!!!!
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

wcf 配置及调用方法
http://download.csdn.net/detail/sunny007sun/3802412

web service 和WCF调用类似!
[/Quote]

...你编一段我这程序传上去挂10分我下来看看行吗 我着急用= =
sunny007sun 2012-08-17
  • 打赏
  • 举报
回复
wcf 配置及调用方法
http://download.csdn.net/detail/sunny007sun/3802412

web service 和WCF调用类似!
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
ServiceReference1.GetEnableSendAgentService Cilent = new ServiceReference1.GetEnableSendAgentService();


Cilent.GetEnableSendAgent()//这里这里怎么写
foreach ( )// 这里怎么写
{
ListViewItem item = new ListViewItem();
item.SubItems.Clear();
item.Text = i.AgentId;
item.SubItems.Add(i.AgentName);
item.SubItems.Add(i.AgentUrl);
item.SubItems.Add(i.UpdateDate.ToString("yyyy-MM-dd"));
listView1.Items.Add(item);
}
}
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
public AgentStatus[] GetEnableSendAgent() {
object[] results = this.Invoke("GetEnableSendAgent", new object[0]);
return ((AgentStatus[])(results[0]))



private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
ServiceReference1.GetEnableSendAgentService Cilent = new ServiceReference1.GetEnableSendAgentService();


Cilent.GetEnableSendAgent()
foreach ( )
{
ListViewItem item = new ListViewItem();
item.SubItems.Clear();
item.Text = i.AgentId;
item.SubItems.Add(i.AgentName);
item.SubItems.Add(i.AgentUrl);
item.SubItems.Add(i.UpdateDate.ToString("yyyy-MM-dd"));
listView1.Items.Add(item);
}
}
wlf535944903 2012-08-17
  • 打赏
  • 举报
回复
学习下这个 你一定会做的~~
从原理 到实战代码
小小农民 2012-08-17
  • 打赏
  • 举报
回复
lz有时间看看这个,http://blog.csdn.net/artech/article/details/4610449
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 8 楼 的回复:
1添加服务器应用
2、声明调用方法
////调用web service服务
public static string WcfAddress;///web service地址
public static WebServiceDataSoapClient GetServiceClient()
{
EndpointAddress address = ……

……
[/Quote]


EndpointAddress是啥= =我的实体又是啥...貌似有点难 算了。。。谢谢你了
mengyao_claire 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
1添加服务器应用
2、声明调用方法
////调用web service服务
public static string WcfAddress;///web service地址
public static WebServiceDataSoapClient GetServiceClient()
{
EndpointAddress address = ……
[/Quote]

=.=还是不会 算了...我放弃了= =

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧