使用Type实例在C#中声明类型

时间:2019-07-10 22:52:22

标签: c# generics reflection automapper

一个人如何实现以下目标:

Type type = this.methodThatGivesDynamicType()
typeof(type) dynamicDTO = _mapper.Map(myObj, typeof(MyObj), type);

或者在事实发生后将dynamic用于dynamicDTO并将其转换为type?最终结果是我有一个Type实例,我需要将一个对象强制转换为该类型。具体来说,我将AutoMapper与该Map方法结合使用,该方法使用动态选择的Type。

从技术上讲,您可以在此处使用dynamic并仅使用鸭子输入。这并不可怕,但也不是最好的,我会对此保持警惕。我宁愿有个更好的解决方案。

特定用途

键入补丁

Type = MagicService.getDynamicDTOType()
dynamic patchDoc = _mapper.Map(patch, typeof(JsonPatchDocument<User>), patchType);
User updateUser = await UserService.UpdateUser(user, patchDoc);

因此,映射器提供了一种动态映射到动态Type的方法,但是如果我需要将其传递给任何我无法传递的地方,因为没有办法将其传递为特定类型。方法签名与dynamic不匹配。

0 个答案:

没有答案