gpt4 book ai didi

c# - WCF REST 服务 - 无法返回对象列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:11 25 4
gpt4 key购买 nike

我创建了一个公开 REST 服务的 WCF Web 服务应用程序。我希望此服务返回带有数据和状态部分的通用响应(请参阅下面的 HttpResponse 类)。 HttpResponse 有一个数据成员,它是一个对象列表。根据执行的 REST 服务调用,我将使用不同类型的对象列表填充数据。

我遇到的问题是,如果数据成员是对象列表,Web 服务就会崩溃。如果它成为一个特定的类,我会得到一个有效的回应。

我该如何解决这个问题?

谢谢!

  public class HttpStatus
{
public int StatusCode = (int)StatusCodeEnum.SUCCESS;
public string UserMessage = "";
public string InternalMessage = "";
public string LinkedList = "";

}

public class HttpResponse
{
private List<object> _data { set; get; }
private HttpStatus _status { set; get; }

public HttpResponse()
{
_data = null;
_status = new HttpStatus();
}

public List<object> Data
{
get
{
return _data;
}
set
{
if (value != null) _data = value;
}
}

public HttpStatus Status
{
get
{
return _status;
}
set
{
if (value != null) _status = value;
}
}
}

[WebInvoke(
Method = "GET",
UriTemplate = "MyEntity",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
HttpResponse GetAllEntities();



public HttpResponse GetAllEntities()
{
// Create Response
HttpResponse response = new HttpResponse();

try{
// Set the data
response.Data = GetMyEntities();
response.Status = 1;
}
catch(Exception ex)
{
Debug.WriteLine("Exception: "+ex.Message);
response.Status.StatusCode = (int)StatusCodeEnum.FAIL;
response.Status.InternalMessage = ex.Message;
response.Status.UserMessage = Constants.GENERIC_USER_ERROR;
}
return response;
}

最佳答案

你可以使用

public class HttpResponse<T> where T : class
{
private List<T> _data { set; get; }
private HttpStatus _status { set; get; }

public HttpResponse()
{
_data = null;
_status = new HttpStatus();
}

public List<T> Data
{
get
{
return _data;
}
set
{
if (value != null) _data = value;
}
}

public HttpStatus Status
{
get
{
return _status;
}
set
{
if (value != null) _status = value;
}
}
}

关于c# - WCF REST 服务 - 无法返回对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36871496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com