1

문자열 목록 대신 객체 목록을 반환하는 방법이 궁금하십니까? 내 비즈니스 로직 계층 ASP.NET : 웹 서비스 메서드에서 객체 목록 반환

여기 여기 내 웹 서비스

[WebMethod] 
public List<OpProduct> SearchProduct(string name) { 
    BLProduct blProduct = new BLProduct(); 
    List<OpProduct> result = byproduct.SearchProducts(name); 

    return result; 
} 

입니다 그리고 ... 있어요

문자열 목록을 작품 반환하지만 때 나는 실패 객체에 의해 모든 것을 대체

public List<OpProduct> SearchProducts(string name) 
{ 
    List<OpProduct> result = (from item in db.OpProducts where item.Name.StartsWith(name) select item).ToList<OpProduct>(); 

    return result; 
} 

다음은 내 오류 메시지입니다 (죄송합니다. 번역 할 수 없음)

System.InvalidOperationException : 오류 메시지가 XML 문서의 에 존재하지 않습니다. ---> System.InvalidOperationException : 오류가 발생했습니다. bij System.Xml.Serialization.XmlSerializationWriter.WriteStartElement (문자열 이름 문자열 NS 오브젝트 O, 부울 writePrefixed, XmlSerializerNamespaces의 XMLNS) bij Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write9_OpProduct (문자열 N 문자열 NS, O OpProduct 부울 ISNULLABLE 부울 needType) Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5_OpGeheugen (문자열 N 문자열 NS bij
, OpGeheugen는 O, 부울 ISNULLABLE 부울 needType)
bij Microsoft.Xml.Serialization .GeneratedAssembly.XmlSerializationWriter1.Write9_OpProduct (String n, Str 보내고 NS는 OpProduct 오 부울 ISNULLABLE 부울 needType)
O Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write10_ArrayOfOpProduct (개체 bij) bij Microsoft.Xml.Serialization.GeneratedAssembly.ListOfOpProductSerializer.Serialize은 ( objectToSerialize 개체 System.Xml.Serialization.XmlSerializer.Serialize (XmlWriter를 XmlWriter를 bij XmlSerializationWriter 작가), 개체 오, XmlSerializerNamespaces 네임 스페이스, 문자열 인코딩 스타일, 문자열 ID) --- Einde 반 인턴 uitzonderingsstackpad --- bij System.Xml.Serialization. XmlSerializer.Serialize (XmlWriter xmlWriter, Object o, XmlSerializerNamespaces 네임 스페이스, 문자열 encodingStyle , 문자열 ID) bij System.Xml.Serialization.XmlSerializer.Serialize (TextWriter에 TextWriter를, 개체 O, XmlSerializerNamespaces 네임 스페이스) bij System.Web.Services.Protocols.XmlReturnWriter.Write (HttpResponse에 응답 스트림의 OutputStream는,에 ReturnValue 객체) bij System.Web.Services.Protocols.HttpServerProtocol.WriteReturns (개체 [] returnValues ​​스트림의 OutputStream) bij System.Web.Services.Protocols.WebServiceHandler.WriteReturns (개체 [] returnValues) bij System.Web. Services.Protocols.WebServiceHandler.Invoke()

아무도 도와 줄 수 있습니까?

+0

XML 직렬화가 실패합니다. 실제 웹 메소드와 별도로 테스트 할 수 있습니다. ** OpProduct **가 직렬화 가능하지 않거나 일부 필드에 유효하지 않은 문자가 포함되어 있습니다. – user270576

답변

1

기본적으로 시스템 기본 유형 및 이러한 기본 유형 (int, float, double, string 등)의 배열 만 반환 값으로 사용할 수 있습니다.

매개 변수로 고유 한 클래스를 사용하려면 XML 정의를 사용하여 클래스를 복합 유형으로 정의해야합니다. 여기에 대한 MSDN 링크가 있습니다 https://msdn.microsoft.com/en-us/library/aa480498.aspx

관련 문제