Web服务应用程序中无法序列化成员System.ComponentModel.MarshalByValueComponent.Site类型System.ComponentModel.ISite错误

时间:2014-12-14 14:35:08

标签: c# linq-to-entities asmx

我有一个Web服务应用程序,它从sql server database获取数据。我想获得产品我的数据库所以我写了一个如下方法:我该怎么办?

 public class ProductBusiness :System.Web.Services.WebService
{

    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public byte[] ProductImage { get; set; }


[WebMethod()]
    public List<ProductBusiness> getProduct()
    {
        using (HealthyFoodEntities db = new HealthyFoodEntities())
        {
            var query = from x in db.Products
                        select new ProductBusiness
                        {
                            ProductImage = x.Picture,
                            ProductName = x.ProductName
                        };
            return query.ToList();
        }
    }

1 个答案:

答案 0 :(得分:0)

您无法返回ProductBusiness类的实例,因为它本身将引用Service的实例。

因此,请更改您的服务类名称,如下所示: -

public class ProductBusinessService :System.Web.Services.WebService

或者,将自定义类与服务类和&amp;分开。将其重命名为其他内容,如下所示: -

public class ProductBusinessData
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public byte[] ProductImage { get; set; }
}

然后您可以在服务中使用它: -

[WebMethod]
public List<ProductBusinessData> getProduct()
{
  //Your Code
}