求: 动态调用WCF方法

tmjeming 2010-07-06 02:03:31
在网上有很多动态调用webservice的代码,可惜就是没有找到调用wcf的,有哪位高手写过,或用过,请贴出来分享一下谢谢
...全文
618 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
不拘晓杰 2012-07-30
  • 打赏
  • 举报
回复
6楼的那些个代码应该写在那里面啊
tmjeming 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 nyq1999 的回复:]
这事因为你加了 using (instance as IDisposable) 这个判断吧.你继承那个接口了吗 生成通道的方法是对的
[/Quote]
ChannelFactory 是一个抽象类 不是接口
错误发生点:
 using (ChannelFactory<T> channel = new ChannelFactory<T>(bindinginstance,address))   

nyq1999 2010-07-07
  • 打赏
  • 举报
回复
这事因为你加了 using (instance as IDisposable) 这个判断吧.你继承那个接口了吗 生成通道的方法是对的
tmjeming 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nyq1999 的回复:]
写个工厂类生成就可以了,你可以看看这个类 ChannelFactory
[/Quote]

兄弟 ChannelFactory不行啊。错误提示: 传递给通用 ChannelFactory 类的类型参数必须是接口类型。
代码如下:
public static object ExecuteMethod<T>(string pUrl,string pMethodName, params object[] pParams)   
{
EndpointAddress address = new EndpointAddress(pUrl);
Binding bindinginstance = null;
BasicHttpBinding ws = new BasicHttpBinding();
ws.MaxReceivedMessageSize = 65535000;
bindinginstance = ws;
using (ChannelFactory<T> channel = new ChannelFactory<T>(bindinginstance,address))
{
T instance = channel.CreateChannel();
using (instance as IDisposable)
{
try
{
Type type = typeof(T);
MethodInfo mi = type.GetMethod(pMethodName);
return mi.Invoke(instance, pParams);
}
catch (TimeoutException)
{
(instance as ICommunicationObject).Abort();
throw;
}
catch (CommunicationException)
{
(instance as ICommunicationObject).Abort();
throw;
}
catch (Exception vErr)
{
(instance as ICommunicationObject).Abort();
throw;
}
}
}
}

nyq1999 2010-07-07
  • 打赏
  • 举报
回复
写个工厂类生成就可以了,你可以看看这个类 ChannelFactory
tmjeming 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cmic 的回复:]
你的意思是不写代理类也不用vs.net生成的代理类?那可以用ajax.net控件调用,只需要知道wcf地址就行

http://peterkellner.net/2008/09/14/wcf-web-service-json-vs2008/

还有一种方法是wcf wcf SDK例子,也不用接口。
[/Quote]
ajax.net控件调用 那是asp.net的程序 winfrom程序还是没找到相关资料(不用接口)

wcf SDK例子 我这没安装 有SDK例子的下载的地址吗?
CMIC 2010-07-06
  • 打赏
  • 举报
回复
你的意思是不写代理类也不用vs.net生成的代理类?那可以用ajax.net控件调用,只需要知道wcf地址就行

http://peterkellner.net/2008/09/14/wcf-web-service-json-vs2008/

还有一种方法是wcf SDK例子中vb客户端调用方式,也不用接口。
tmjeming 2010-07-06
  • 打赏
  • 举报
回复
这个还是没做到动态 还必须知道有接口类啊。。 还是非常感谢。
老Key 2010-07-06
  • 打赏
  • 举报
回复
http://hi.baidu.com/meback/blog/item/c140495447258e5d564e0006.html
楼主可以看一下

110,536

社区成员

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

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

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