2016-07-14 4 views
0

Serialisierung Ich habe Probleme, ein Objekt zu senden, die drei Eigenschaften haben, ist das Problem mit der Anordnung von Kunden ist beim Senden Ich habe folgendes Fehlerobjekt:Sie können nicht Mitglied asp asmx

Sie können nicht Mitglied serialisiert . Weil es eine Schnittstelle ist.

Wenn die Eigenschaft von Kunden ws sehr gut funktioniert. Ich habe auf verschiedene Weisen versucht, den Fehler zu beseitigen, aber keiner scheint ein Fragment des Codes zu arbeiten, so dass sie mir ihren Standpunkt geben können. ich danke Ihnen sehr

public class CustomersResponse 
{ 
    public bool Success { get; set; } 
    public string Error { get; set; } 
    public customer[] ListCustomers { get; set; } 
} 

und der Code von ws ist

/// <summary> 
/// 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService] 
public class wsCustomers : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public CustomersResponse CustomersResult() 
    { 
     CustomersResponse customers = new CustomersResponse(); 
     try 
     { 
      using (var context = new DataContext()) 
      { 
       customers.Success = true; 
       customers .Error = string.Empty; 
      } 
     } 
     catch (Exception ex) 
     { 
      customers .Success = false; 
      customers .Error = ex.Message.ToString(); 
     } 

     return customers ; 
    } 
} 

wenn ich die ws gut funktioniert die Eigenschaft ListCustomers löschen, wenn ich markiert den Fehler setzen :(

+0

Was ist die Definition für "Kunden"? Ist es eine Schnittstelle oder eine Klasse? – Tim

+0

Mögliches Duplikat von [Mitglied kann nicht serialisiert werden .... weil es eine Schnittstelle ist] (http://stackoverflow.com/questions/3632769/cannot-serialize-member-because-it-is-an-interface) – Tim

+0

@Tim ist eine Klasse – Vesper

Antwort

0

Sie müssen setzen [Serializable] Metatag vor Ihrer Kundenklasse.

[Serializable] 
public class customer 
{ 

// ....

}

+0

Ich habe dieses Meta-Tag in der Klasse und es funktioniert auch nicht – Vesper

0

Ich konnte bereits die problema.cual Lösung lösen Ich habe ein Modell namens Kunden EntityFramework verwendet. Eine andere Klasse wurde mit den gleichen Attributen Kunden erstellt und funktioniert bereits ws denken, wenn das Kompilieren der Anwendung etwas tut, das Kunden betrifft und so diese Ausnahme Marke.