C# 将序列化元数据与数据约定的实现分离?
我想为DTO定义一个契约,消费API项目将实现该契约并将其作为JSON返回 在我看来,这里有三个问题:C# 将序列化元数据与数据约定的实现分离?,c#,json,asp.net-web-api,serialization,asp.net-core,C#,Json,Asp.net Web Api,Serialization,Asp.net Core,我想为DTO定义一个契约,消费API项目将实现该契约并将其作为JSON返回 在我看来,这里有三个问题: 合同规定的财产 实现(例如,这可能是一个实体框架POCO) 定义返回的JSON的序列化元数据 我想分别定义这三个部分,但就我所知,我必须在合同的执行中添加序列化修饰(DataMemberattributes等)。这意味着实现与JSON表示相耦合 是否可以将此序列化元数据分离到单独的类中?我总是发现为每个目的创建单独的模型是有益的,然后使用AutoMapper在这些模型之间进行映射 您也可以创建
DataMember
attributes等)。这意味着实现与JSON表示相耦合
是否可以将此序列化元数据分离到单独的类中?我总是发现为每个目的创建单独的模型是有益的,然后使用AutoMapper在这些模型之间进行映射
您也可以创建约定,但这有时感觉很神奇。我总是发现为每个目的创建单独的模型是有益的,然后使用AutoMapper在这些模型之间进行映射
您也可以创建约定,但这有时会让人觉得很神奇。如果您使用的是完整的.Net(而不是.Net core)并使用Json.Net进行序列化,则可以使用。但是,请参阅以了解实现中的一些限制。谢谢@dbc。我想这正是我想要的。实际上我使用的是.NETCore,但是我看到
MetadataTypeAttribute
已经迁移并重命名了-。稍后我将尝试并报告。遗憾的是,Json.NET不支持modelmatatype
。看和。是的,我已经证实你说的是正确的。似乎唯一的选择是使用AutoMapper,如下所示。尽管@dbc,感谢您的见解。如果您使用的是完整的.Net(而不是.Net核心)并使用Json.Net进行序列化,您可以使用。但是,请参阅以了解实现中的一些限制。谢谢@dbc。我想这正是我想要的。实际上我使用的是.NETCore,但是我看到MetadataTypeAttribute
已经迁移并重命名了-。稍后我将尝试并报告。遗憾的是,Json.NET不支持modelmatatype
。看和。是的,我已经证实你说的是正确的。似乎唯一的选择是使用AutoMapper,如下所示。感谢您对@dbc的见解。