c#webapi忽略对象中的属性

c#webapi忽略对象中的属性,c#,xml,json,serialization,asp.net-web-api,C#,Xml,Json,Serialization,Asp.net Web Api,我目前正在使用C#WebAPI作为我们的API 我需要能够将序列化为JSON或XML对象上的特定属性。使这更困难的是,我们来回序列化对象以便在数据层中使用,因此我不能在序列化时仅使用要忽略的标准属性 我想创建一个自定义属性(ApiPropertyAttribute),然后在serialise中使用一个过滤器只返回带有新属性的属性。我们只想将过滤器用于WebAPI 出于维护原因,我们不希望创建新对象并使用映射器 我已经看过媒体类型格式化程序和转换器,但不能让它们做我想要的 非常感谢您的帮助。您的数

我目前正在使用
C#WebAPI
作为我们的API

我需要能够将
序列化为
JSON
XML
对象上的特定属性。使这更困难的是,我们来回序列化对象以便在数据层中使用,因此我不能在序列化时仅使用要忽略的标准属性

我想创建一个自定义属性
ApiPropertyAttribute
),然后在serialise中使用一个过滤器只返回带有新属性的属性。我们只想将过滤器用于WebAPI

出于维护原因,我们不希望创建新对象并使用映射器

我已经看过媒体类型格式化程序和转换器,但不能让它们做我想要的


非常感谢您的帮助。

您的数据层似乎已经实现了类分离(DTO-like)。为什么不更进一步,从数据层获取响应,并将其转换为在
ApiController
的上下文中使用呢?我的意思不是说为所有内容创建模型,但是您可以返回匿名对象,序列化程序将很乐意接收它们。嗨,Simon,它需要通过我们的业务层来确保在通过API获取和保存时遵循正确的验证和规则。我们试图避免创建任何新类型的对象。这不是问题。从
ApiController
方法返回的内容不应被业务逻辑验证篡改。这应该在返回之前完成。除非您使用AoP或客户筛选器/处理程序进行业务验证,我不建议这样做。当您从数据层获得响应时,您应该使用业务逻辑进行验证,并在该上下文中返回适当的响应。如果验证良好,则返回一个匿名对象,其中包含需要发送给客户端的属性。我明白您的意思(我想)。当用户使用POST或PUT到apicontroller时,我们如何将数据绑定到对象以便于使用?