【发布时间】:2014-05-15 07:27:55
【问题描述】:
拥有一个具有复杂属性的响应,我想正确映射到我的 responseDTO。对于所有基本类型,它都能完美运行。
ResponseDTO 如下所示:
public class ResponseDto
{
public string Id {
get;
set;
}
public struct Refs
{
public Genre GenreDto {
get;
set;
}
public Location LocationDto {
get;
set;
}
}
public Refs References {
get;
set;
}
}
现在 Genre 和 Location 都是具有简单属性(int/string)的简单类
公共类 GenreDto {
public string Id {
get;
set;
}
public string Name {
get;
set;
}
}
问题: 有没有什么办法,没有changing/replacing 通用反序列化器(更具体的example)(在这个例子中是JSON)来映射这样复杂的属性? GithubResponse 示例的一个具体区别是,我不能使用一种类型的字典,因为我在引用下有不同的类型。这就是我使用结构的原因,但这似乎不起作用。也许只允许使用 IEnumerable?
更新 有一种方法使用 lamda expressins 手动解析 json github.com/ServiceStack/ServiceStack.Text/blob/master/tests/ServiceStack.Text.Tests/UseCases/CentroidTests.cs#L136 但我真的很想避免这种情况,因为 ResponseDTO 以这种方式变得有点无用 - 因为在编写这种手动映射时,我将不再使用 Automapper 从 ResponseDto 映射到 DomainModel - 我虽然喜欢这种抽象和“分离”。
谢谢
【问题讨论】:
-
FTR:我找到了stackoverflow.com/questions/20600846/…(这是ORM,我猜它并没有真正映射我的问题)和更具体的stackoverflow.com/questions/13851744/…。后者似乎很感兴趣,或者我的问题在这方面可能是一个骗局。我想这会很清楚,我得到第一个答案:)
标签: c# rest servicestack dto