|
|
1
6
作为反思。Emit相当笨重,我建议去看看 this Reflector插件,它非常适合构建这种代码。 |
|
2
4
什么版本的。NET是吗? 对于浅拷贝:
在3.5中,您可以预编译
BinaryFormatter(在问题中)在这里不是一个选项——它根本无法工作,因为原始类型和目标类型不同。如果数据是基于合约的,则XmlSerializer或DataContractSerializer可以工作 如果 所有合同名称都匹配,但如果可能的话,上述两个(浅)选项会快得多。
此外,如果您的类型标记了通用序列化属性(
但这取决于具有非常相似模式的类型(事实上,它不使用名称,而是在属性上使用显式的“Order”等) |
|
|
3
3
你可能想看看 AutoMapper ,一个专门在对象之间复制值的库。它使用约定而非配置,因此,如果属性确实具有exaxt相同的名称,它将为您完成几乎所有的工作。 |
|
|
5
1
如果速度是一个问题,您可以将反射过程脱机,并生成用于映射公共属性的代码。您可以在运行时使用轻量级代码生成或完全离线构建C#代码进行编译。 |
|
|
6
1
如果您控制目标对象的实例化,请尝试使用
回报
|
|
|
7
0
如果速度是一个问题,您应该在方法本身中实现克隆方法。 |
|
|
JBryanB · 如何从基本抽象类访问类属性 3 年前 |
|
|
Gabe Tucker · 无法在golang中分配接口对象指针 4 年前 |
|
|
jkone27 · F#-在编译时从字符串生成简单的空类型 8 年前 |
|
|
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 8 年前 |
|
|
Randall Flagg · 访问propertyinfo中的属性 8 年前 |
|
|
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 8 年前 |
|
|
tobeypeters · 反射铸造 8 年前 |
|
|
myst02 · 如何在另一个方法之后调用该方法? 8 年前 |