2011-06-16 123 views
1
public List<Empleado> ListarEmpleados() 
    { 
     List<Empleado> returnList = new List<Empleado>(); 
     var lista = from u in DB.tabEmpleado 
        select new 
        { 
         u.idEmpleado, 
         u.idUsuario, 
         u.Nombre, 
         u.Apellidos, 
         u.Telefono1 
        };       
     foreach (var e in lista) 
     { 
      Empleado empleado = new Empleado(); 
      empleado.idEmpleado = e.idEmpleado; 
      empleado.idUsuario = e.idUsuario; 
      empleado.nombre = e.Nombre; 
      empleado.apellidos = e.Apellidos; 
      empleado.telefono1 = e.Telefono1; 
      returnList.Add(empleado);     
     } 
     return returnList; 
    } 

這是一個WCF服務,當被調用返回的StackOverflow錯誤的類定義時,正好idEmpleado的設置屬性。獲取StackOverflowException設置屬性

類定義就在這裏。

[DataContract] 
public class Empleado 
{     
    private int _idEmpleado; 
    [DataMember(IsRequired = false)] 
    public int idEmpleado 
    { 
     get { return _idEmpleado; } 
     set { idEmpleado = value; } ERROR 
    } 


    private int _idUsuario; 
    [DataMember(IsRequired = false)] 
    public int idUsuario 
    { 
     get { return _idUsuario; } 
     set { idUsuario = value; } 
    } 

    private string _nombre; 
    [DataMember(IsRequired = false)] 
    public string nombre 
    { 
     get { return _nombre; } 
     set { nombre = value; } 
    } 

    private string _apellidos; 
    [DataMember(IsRequired = false)] 
    public string apellidos 
    { 
     get { return _apellidos; } 
     set { apellidos = value; } 
    } 

    private string _telefono1; 
    [DataMember(IsRequired = false)] 
    public string telefono1 
    { 
     get { return _telefono1; } 
     set { telefono1 = value; } 
    } 
} 

}

有誰知道哪裏出錯?

在此先感謝。

回答

8

您正在通過再次調用屬性設置器來設置屬性的值,而不是直接設置其背景字段。這導致無限遞歸和堆棧溢出。

public int idEmpleado 
{ 
    get { return _idEmpleado; } 
    set { idEmpleado = value; } // SHOULD BE _idEmpleado = value 
} 
+0

該死的,你打我吧。 – 2011-06-16 13:44:33

+0

非常感謝。編輯它之後,它返回給我這個錯誤:來自命名空間http://tempuri.org/的'code'Element ListadoClientesResult不能將子內容作爲對象進行反序列化。請使用XmlNode []來反序列化這種模式的XML.'代碼' – Javiere 2011-06-16 14:04:40

+0

@Javiere:這是一個序列化相關的問題。將其作爲單獨問題發佈,並請提供更多詳細信息,這些信息將是必需的。 – Jon 2011-06-16 14:25:51