无法解析客户端对象WebService的返回值

时间:2014-01-21 15:51:12

标签: c# web-services

我不明白如何解决这个问题。我将需要你的帮助和解释如何解决它。 我使用WebService来填充具有艺术家姓名的DropDownList 这是代码behing。

private List<ArtistServiceReference.ArtistServiceClient> ArtistDetail()
{
    ArtistServiceReference.ArtistServiceClient client =  
      new ArtistServiceReference.ArtistServiceClient();

    ArtistServiceReference.Artist[] artists = client.ArtistDetail();

    return artists.ToList();   <=== errror here

无法隐式将System.Collections.Generic.List<ArtistServiceReference.Artist>类型转换为System.Collections.Generic.List<ArtistServiceReference.ArtistServiceClient>

这是ArtistService.cs

public class ArtistService : IArtistService
{
    public List<Artist>  ArtistDetail()   
    {
        using (ArtistDataContext db = new ArtistDataContext())
        {
            return (from artist in db.Artists

                select new Artist()
                {
                    Id = artist.Id,
                    Artist_nom = artist.Artist_nom
                }).ToList();
        }
    }
}

3 个答案:

答案 0 :(得分:1)

如果您希望客户端方法返回Artist的列表,为什么要将其声明为返回ArtistClient的列表?

以下内容应解决您的问题:

private List<ArtistServiceReference.Artist> ArtistDetail()
{
    ...
    return artists.ToList();
}

或者,更优雅:

using YourNamespace.ArtistServiceReference;

private List<Artist> ArtistDetail()
{
    ...
    return artists.ToList();
}

答案 1 :(得分:1)

您的方法的返回类型应该是ArtistServiceReference.Artist的列表,而不是ArtistServiceReference.ArtistServiceClient的列表。您想使用ArtistServiceClient返回艺术家列表,而不是返回客户列表。

private List<ArtistServiceReference.Artist> ArtistDetail()
{
    ArtistServiceReference.ArtistServiceClient client =  
      new ArtistServiceReference.ArtistServiceClient();

    var artists = client.ArtistDetail();

    return artists.ToList();
}

答案 2 :(得分:0)

这是解决方案:

代码behind.cs

private List<ArtistServiceReference.Artist> ArtistDetail()
{
    ArtistServiceReference.ArtistServiceClient client = new 
    ArtistServiceReference.ArtistServiceClient();

    ArtistServiceReference.Voiture[] artists = client.ArtistDetail();

    return artists.ToList();
}

ArtistService.cs

public class ArtistService : IArtistService
{
    public List<Artist>  ArtistDetail()  
    {
        using (ArtistDataContext db = new ArtistDataContext())
        {
            return db.Artists.ToList();
        }
    }
}