我正在创建一个 Web 服务,并且希望对返回数据更加优雅,而不是拥有许多消费者需要检查的属性。
根据幕后生成的数据,我需要能够返回错误数据或消费者期望的数据。
我不想拥有一个大的平面对象,并在需要时填充属性,并让用户检查“成功”标志,而是希望单个属性 Data 成为错误类的实例或成功课。
这就是我想做的事情:
class ItemResponse
{
public bool Success { get; set; }
public T Data{ get; set; }
}
if( /*acceptance criteria*/ )
{
ItemResponse<SuccessData> resp = new ItemResponse<SuccessData>();
resp.Data = new SuccessData();
}
else
{
ItemResponse<ErrorData> resp = new ItemResponse<ErrorData>();
resp.Data = new ErrorData();
}
return resp;
public class SuccessData
{
}
public class ErrorData
{
}
然后让 web 方法返回具有通用属性的对象。
这是否可能,如果是这样,鉴于必须正确输入 webmethod 返回类型,我该怎么做?