在.net core 下的wcf 和framework下的wcf使用方式有点不太一样。在core下用wc,需要安装VS扩展Visual Studio WCF Connected Service,目前这个插件不是特别的稳定,经常会出现莫名其妙的错误,前段时间最高支持到.net standard 1.6,可是我用的是.net core 2.0 于是,在同事的提醒下,我先将 .net standard 降为1.6 调用完wcf服务后,再升级为2.0。不会出现任何错误。最近好了,升级到2.0了,直接可以在 standard 2.0下调用wcf服务了。不过插件依旧是不稳定。解决方法是,多添加几次,别怕麻烦,只要你发布的wcf服务配置没有错误。多试几次,就行了。

方法的问题:在.net core 环境中用WCF全是异步的,自动会将你的wcf服务提供的同步方法变为异步方法,具体为什么这么做,原因我还不是清楚。Framework 中则不会出现这种情况,如果是同步的,那么调用的wcf服务也是同步的,异步的还是异步的,不会进行转化。

类型的问题:现在.net core 2.0 可以直接用Framework的包 ,我在这里举个例子。

///这代表一个公用的类
namespace CNblogs.job.A
{
public class a
{
public string Name{get;set;}
}
}
//这代表WCF的服务
namespace CNBlogs.Job.WcfHost
{
using CNBlogs.job.A;
public class wcfService
{
//这代表WCF服务中的一个测试方法
public a Test(string name)
{
return new a(){Name=name};
}
}
}

假设我们已经把这个服务发布在了IIS上,或者说这个服务已经跑起来了。 我们在Core中的项目已经加入这个WCF服务的引用,名称为:WcfTestService。

namespace CNBlogs.job.Core.WcfTest
{
using CNBlogs.Job.A
public class C
{
public a GetWcfService()
{
var name="test";
var WcfClient=new WcfTestService.WcfTestServiceClient();
//在这里我将异步方法转化为了同步的方法
var result=WcfClient.TestAsync(name).Result;
//如果这时返回Result 会报错 ;无法将WcfTestService.a的类型转化为CNBlogs.Job.A.a的类型
//我们需要用到AutoMapper进行一个类型的转化,这样才不会报错
AutoMapper.Mapper.Initialize(c=>c.CreateMap<WcfTestService.a,,CNBlogs.Job.A.a>());
return AutoMapper.Mapper.Map<CNBlogs.Job.A.a>(result);
}
}
}

希望能够帮助到和我一样的小菜们。

.Net Core下使用WCF的更多相关文章

  1. .Net Core下通过Proxy 模式 使用 WCF

    .NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费 ...

  2. Net Core下通过Proxy 模式

    Net Core下通过Proxy 模式 NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NE ...

  3. Mono下的WCF的Bug?

    最近一段时间,一直在折腾Mono,折腾Linux.让我无比痛苦的是Mono下的WCF的坑真的是太多了,这不又遇到了一个莫名其妙的问题. 环境:mono 3.2.1,Jexus 5.4.3,OS Cen ...

  4. 4.5 .net core下直接执行SQL语句并生成DataTable

    .net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs& ...

  5. .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。

    本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64 ...

  6. .NET Core下使用gRpc公开服务(SSL/TLS)

    一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...

  7. .Net Core下如何管理配置文件

    一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XX ...

  8. .Net Core下如何管理配置文件(转载)

    原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core ...

  9. c# .net core 下的网络请求

    本文章是在VS2017的环境下,.net core 1.1版本以上. 在这期间,由于.net core 并不基于IIS,我们的过去的网络请求代码在.net core框架下,有可能会出现不兼容,报错的现 ...

随机推荐

  1. 配置tomcat的远程调试

    参考文档: http://jingyan.baidu.com/article/0320e2c1f4ef6b1b87507b06.html http://flyer2010.iteye.com/blog ...

  2. (转载)oracle 在一个存储过程中调用另一个返回游标的存储过程

    原文链接:http://www.jb51.net/article/20160.htm 实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法. 第一种情 ...

  3. usaco training 3.4.3 fence9 题解

    Electric Fence题解 Don Piele In this problem, `lattice points' in the plane are points with integer co ...

  4. 关于在eclipse上部署Tomcat时出现8080等端口被占用问题的解决方法

    问题描述: 在eclipse中部署Tomcat时,出现如下错误. 解决方法如下: 方法一: 1.开始->cmd->输入命令netstat -ano出现下图所示(注意下边显示有些错位,最后一 ...

  5. mysql获得自增的下条id的值

    需求: 当数据表中存在一个字段需要该条数据中自增长的id值 实现方法:(1)代码中先插入该条数据后,再次修改数据 (2)在数据库中使用触发器完成 具体实现:实现方法中的第一种方法就不在此实现,以下便是 ...

  6. Xcode导出App一般问题及其解决方法(开发者协议变更及Bundle Id过期问题)

    Xcode导出App一般问题及其解决方法 问题一:开发者协议变更问题. 变更后打包会出现如下图A警告,此时点击 "visit developer website"进入Apple开发 ...

  7. nyoj_2:括号配对问题

    模拟栈的操作,很基础的一道题 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=2 #include<stdio.h> #inc ...

  8. bash脚本编程---循环

    bash为过程式编程语言 代码执行顺序: 1.顺序执行:逐条执行 2.选择执行:代码有一个分支,条件满足时才会执行                       两个或以上的分支,只会执行其中一个满足条 ...

  9. Scikit-Learn与决策树

    Scikit-Learn(决策树)可以用于方法分类和回归. 一.分类 sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='b ...

  10. JStorm与Storm源码分析(五)--SpoutOutputCollector与代理模式

    本文主要是解析SpoutOutputCollector源码,顺便分析该类中所涉及的设计模式–代理模式. 首先介绍一下Spout输出收集器接口–ISpoutOutputCollector,该接口主要声明 ...