Asp.net web api 不同类型的WebApi2 FromBody RequestMessage
我正在设计一个ASP.NETWebAPI 2解决方案,它可能会从[Frombody]接收以下一种形式的请求消息 我应该如何设计绑定到传入请求消息的具体类?任何建议都将不胜感激Asp.net web api 不同类型的WebApi2 FromBody RequestMessage,asp.net-web-api,Asp.net Web Api,我正在设计一个ASP.NETWebAPI 2解决方案,它可能会从[Frombody]接收以下一种形式的请求消息 我应该如何设计绑定到传入请求消息的具体类?任何建议都将不胜感激 <?xml version="1.0" encoding="utf-8"?> <RequestMessage> <Shapes> <RectangleInfo></RectangleInfo> </Shapes> </Reques
<?xml version="1.0" encoding="utf-8"?>
<RequestMessage>
<Shapes>
<RectangleInfo></RectangleInfo>
</Shapes>
</RequestMessage>
or
<RequestMessage>
<Shapes>
<CicleInfo></CicleInfo>
</Shapes>
</RequestMessage>
or
<RequestMessage>
<Shapes>
<SquareInfo></SquareInfo>
</Shapes>
</RequestMessage>
或
或
考虑使用ModelBinder界面并返回正确类型的IShape:矩形、圆形或方形。完成后,控制器方法将如下所示:
public Task<HttpResponseMessage> GetShape(
[ModelBinder] IShape shape = null) { ... }
也许有一天你会补充
public class CircleShape : EllipseShape { ... circle special case of ellipse properties ... }
public class EllipseShape : Shape { ... ellipse properties ... }
也许答案与您想象的不同,但您说了
任何建议
,这可能会对您很有帮助。非常感谢您的指导。我将在IModelBinder界面上进行探索,以实现这一点。
public abstract class Shape : IShape { .. properties for all shapes ... }
public class SquareShape : RectangleShape { ... special case rectangle syntactic sugar that makes it a square ... }
public class RectangleShape : Shape { ... rectangle properties }
public class CicleShape : Shape { ... cicle properties }
public class CircleShape : EllipseShape { ... circle special case of ellipse properties ... }
public class EllipseShape : Shape { ... ellipse properties ... }