【发布时间】:2019-02-12 08:26:25
【问题描述】:
我创建了一个基类作为“Common”,其中有许多属性,例如 pageno、pagesize、search 等,它们将在整个项目的所有类中使用(必须要求)。 还有其他类作为“区域”,它扩展了“普通”类。 所有属性都是自动获取和设置的。
这里的问题是, 我已经创建了 web api。它返回了 Area 类的对象。 所以这里客户端收到了区域和常见的所有属性。但是我需要特定的属性来响应。 意味着我只需要 Area i.t AreaId,AreaName 的两个属性
对 JSON 和 XML 等不同格式的重新调整数据的要求。我对 linq 进行了处理,它提供了我确切需要的特定属性。但它是匿名类型的数据。不强烈反对。 以下是我的代码示例
public class Common
{
public int CaseNo { get; set; }
public int? RET_ID { get; set; }
public string MSGSTATUS { get; set; }
public string MSG { get; set; }
public int? LoginId { get; set; }
}
public class Area : Common
{
public int AreaId { get; set; }
public string AreaName { get; set; }
public string PinCode{ get; set; }
}
/Web api 代码/
public IHttpActionResult GetAreaById(int AreaId, int LoginId)
{
try
{
AreaDAL objDal = new AreaDAL();
Area objBo = new Area();
objBo = objDal.EditArea(AreaId, LoginId);
if (objBo != null)
{
/*Not working for xml returned data(work for json).anonymous type data*/
return ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, new Area { AreaId = objBo.AreaId, AreaName = objBo.AreaName }));
/*working for json and xml */
/*But it retuned all properties of Area and common*/
/*Needed as AreaId and AreaName*/
return ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, objBo));
}
}
【问题讨论】:
-
所以您的问题是如何在不写
new Area...的情况下将对象提供给xml 响应,或者您具体要问什么? “不工作”到底是什么意思? -
你提到“匿名数据”,你的意思是像
new { AreadId, AreaName }这样的东西吗?如果是这样,该解决方案有什么问题? -
是的,还需要类结构的推荐。如果我使用新的 {AreaId,AreaName} ,它没有在 web api 中重新调整为 xml
标签: c#