Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf System.Threading.Tasks.Task-无法序列化,因为它没有无参数构造函数。_Wcf_Api_C# 4.0_Task - Fatal编程技术网

Wcf System.Threading.Tasks.Task-无法序列化,因为它没有无参数构造函数。

Wcf System.Threading.Tasks.Task-无法序列化,因为它没有无参数构造函数。,wcf,api,c#-4.0,task,Wcf,Api,C# 4.0,Task,我目前正在使用,它可以很好地处理同步任务。 但是,当我尝试使用Task/Task实现异步操作时,如下所示: [WebGet(UriTemplate = "landmark")] Task<IEnumerable<Closest>> GetLandmarkAsync(float latitude, float longtitude) { return Task.Factory.StartNew(() => CalculateCl

我目前正在使用,它可以很好地处理同步任务。 但是,当我尝试使用Task/Task实现异步操作时,如下所示:

    [WebGet(UriTemplate = "landmark")]
    Task<IEnumerable<Closest>> GetLandmarkAsync(float latitude, float longtitude)
    {
        return Task.Factory.StartNew(() => CalculateClosestThing(latitude,     longtitude));
    }
现在,我做的第一件事是检查最近的类并添加一个无参数构造函数,如下所示:

public class Closest
{
    public Closest() { }

    public double Distance { get; set; }
    public string Name { get; set; }
}
但我还是犯了同样的错误。我已经尝试了所有的方法,很明显,这个类上有一个无参数的构造函数。有人经历过这种情况吗?有什么想法吗?

请阅读以下内容:


确保您新建了一个WebApiConfigurationobj(源自HttpConfiguration),并通过在主机中调用routes.SetDefaultHttpConfiguration()将其设置为默认Http配置(我使用的是MVC主机)

在从HttpConfiguration切换到WebApiConfiguration之前,我遇到了与您相同的问题


有关详细信息,请参见

尝试返回最近的[],而不是IEnumerable。是否确实要通过连线封送任务?当然不行了。这也需要封送委托,这是不可能的。@MarkW即使我尝试了,我仍然会遇到相同的错误:System.Threading.Tasks.Task`1[ContentRepository.Data.Entities.Closest[],无法序列化,因为它没有无参数构造函数。@Aliostated Hey,我只是在遵循WCF codeplex文档中的示例-。我的类似于他们的示例…如上所述,为什么要返回任务?只需异步调用函数(在任务内部)
public class Closest
{
    public Closest() { }

    public double Distance { get; set; }
    public string Name { get; set; }
}