1
나는 내가 응답을 얻을 수 피들러를 사용하는 경우익명 반환
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public object GetUser()
{
List<string> users = new List<string>
{
"Nora Aunor",
"Pilita Corrales"
};
var result = users.Select(u => new
{
Name = u,
Birthdate = DateTime.Now
})
.ToList();
var retVal = new
{
Data = result,
Count = result.Count
};
return retVal;
}
, 그것은 내가
을 기대했던 데이터를 확인 반환하는 개체를 반환하는 웹 서비스 기능 (익명 LINQ 결과를) 생성하지만 난 브라우저를 사용하는 경우, 그냥 오류
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: <>f__AnonymousType2`2[System.Collections.Generic.List`1[<>f__AnonymousType1`2[System.String,System.DateTime]],System.Int32] cannot be serialized because it does not have a parameterless constructor.
at System.Xml.Serialization.TypeDesc.CheckSupported()
at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError)
at System.Xml.Serialization.XmlSerializationWriter.CreateUnknownTypeException(Type type)
at System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(String name, String ns, Object o, Boolean xsiType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(String n, String ns, Object o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3_anyType(Object o)
at Microsoft.Xml.Serialization.GeneratedAssembly.ObjectSerializer1.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
at System.Web.Services.Protocols.WebServiceHandler.Invoke()
을 반환 691,363,210
질문 : 방법이
{
"d": {
"Data": [{
"Name": "Nora Aunor",
"Birthdate": "\/Date(1393578983512)\/"
},
{
"Name": "Pilita Corrales",
"Birthdate": "\/Date(1393578983512)\/"
}],
"Count": 2
}
}
하거나 기본 XML 결과처럼 브라우저에 표시됩니다 JSON에 구조 + 익명 메소드의 데이터를 표시합니다. 사전에
감사
가능한 복제본 [MVC 4 웹 API에서 익명 유형 반환하기가 직렬화 오류로 실패합니다.] (http://stackoverflow.com/questions/14962134/returning-an-anonymous-type-from -mvc-4-web-api-serialization-errors와 함께 실패 함) – sloth
@DominicKexel이 링크가 링크 된 질문과 중복되는 것 같지 않습니다. OP는 MVC 또는 웹 API가 아닌 이전 ASMX 웹 서비스를 사용합니다. –