我目前正在创建 .NET C# API。我有很多类,其中一些类必须通过 REST
服务作为 JSON
进行传输。例如,我可能有一个包含大量业务元数据的帐户对象:
public class Account
{
public ComplicatedClass SomeProperty { get; set; }
public string SomeOtherProperty { get; set; }
}
有很多类,还有很多是嵌套的(如 ComplicatedClass
类型属性所示)。为了避免用 [DataMember]
等属性淹没这个业务对象,这会使这个类变得一团糟,我想为 JSON
创建一个 DTO
>:
public class AccountDTOForJSON
{
[DataMember(Name="someProperty")]
public ComplicatedClassDTOForJson SomeProperty { get; set; }
[DataMember(Name="someOtherProperty")]
public string SomeOtherProperty { get; set; }
}
我的问题是,似乎没有任何工具(我能找到)来自动生成这些 DataContract
类,也没有提供用于来回映射属性的代码。
当然,我可以手动完成所有这些工作(最坏的情况),或者使用我自己的工具来生成/映射(第二种更坏的情况)。但是,我首先想知道是否已经有一种工具可以做这种事情,我可以用它来节省自己的时间。
最佳答案
这是个好问题。实际上,我将在我正在进行的项目中做类似的事情。
我建议这里确实有两个问题:第一个是从您的业务对象生成 DTO 代码,第二个是在业务对象和 DTO 之间进行映射。
在谷歌上花了大约半小时后,我找不到用于此目的的代码生成器。也许我没有在寻找正确的东西,或者可能没有合适的东西(所以如果有人知道,请插话)。我发现唯一看起来很有前途的工具是 NHydrate ( http://www.codeproject.com/Articles/42885/NHydrate-Code-Generator ),但我并没有实际下载或测试它。
我过去使用的映射工具是 AutoMapper ( https://github.com/AutoMapper/AutoMapper/wiki/Getting-started ) - 它会尝试找出您的业务对象和 DTO 之间的关系,并且能够进行双向映射。
关于c# - 从业务对象类自动生成 DataContract 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652487/