![]() |
1
2
据我所知,解决方案分为两部分,这两部分应该相互独立地工作。 A部分:对象转换的通用模式 创建一个接口,由需要从外部DTO调整的所有模型实现。
这个接口只需要一个
现在为每个要从另一种类型进行调整的模型构建一个类。
TypeAdapter类:
注1
:的
注2
:我选择将
添加这个类也将扩展解决方案以包含这个转换。 当然,如果它更适合您的应用程序,您可以选择自己的方式。 B部分:服务电话 据我所知,应用程序没有办法提取目标类型,只给定源类型。你必须在服务电话中提供。你对你的服务电话没有描述,所以我给你一些提示。 如果您的服务电话是这样的,它将工作:
如果无法在服务调用中传递T类型,则可以使用If子句正确定义目标类型:
|
![]() |
2
1
你有两个选择, 一。通过反射生成模型和Dto的属性列表。然后匹配他们的类型。
2.使用 Automapper |
![]() |
3
1
因为您正在实现一个泛型方法,所以您需要实现一个泛型方法来将S转换为T(参见其他答案),或者您需要传入转换函数。
下面是调用上述方法的示例代码。
|
![]() |
4
0
谢谢你们的回答,他们帮助我朝着正确的方向前进。 我在运行时使用反射来解决正确的自适应方法。 多亏了你,我学到了一些思考的东西。 我正在分享解决方案,希望我也能有所回报。 这就是我的结局。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 3 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 3 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |