1通过WebClient或者Request实现,此方法略去
2通过WCF Client调用
a通过WebChannelFactory建Channel
b通过Channel就可以直接调用服务端方法
3代码
WCF服务端和客户端都引用Contact库
[ServiceContract]
public interface IUserService : IBaseWCFService
{
[WebGet(UriTemplate = "userID={userID}")]
[Description("根据UserID获取用户信息")]
UserInfo GetUserInfo(string userID);
}
Client调用方式
using (WebChannelFactory<IUserService> wcf = new WebChannelFactory<IUserService>(new Uri("http://ipv4.fiddler:30760/Services/UserService")))
{
var channel = wcf.CreateChannel();
IClientChannel clientchanel = channel as IClientChannel;
channel.GetUserInfo(new Random().Next(1, 1000).ToString());
}
WCF请求头设置,ContentType,Accept,这个的设置很让人头痛,查询了很多资料才找到实现方式
通过OperationContextScope来实现
直接代码
using (WebChannelFactory<IUserService> wcf = new WebChannelFactory<IUserService>(endpoint))
{
var channel = wcf.CreateChannel();
IClientChannel clientchanel = channel as IClientChannel;
using (new OperationContextScope(channel as IContextChannel))
{
WebOperationContext.Current.OutgoingRequest.Headers.Add("APIKey", Guid.NewGuid().ToString());
WebOperationContext.Current.OutgoingRequest.ContentType = "json";
WebOperationContext.Current.OutgoingRequest.Accept
channel.GetUserInfo(new Random().Next(1, 1000).ToString());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探