2016-12-16 240 views
0

这可能看起来像一个愚蠢的问题,但我有理由想要将一个对象A中的一堆属性复制到另一个B中,其中A是一个子集B. 。这意味着写出在C#代码的时候,就很难确定我已经实际复制事事休A.将C#变量赋值给另一个变量,avar.GiveTo(something.else)

A. < =智能感知给了我一切都在A,我不关心。

B. < =伟大的,但我不能以这样的方式完成的打字,它最终会是这样的: A.prop = B.similarProp

所以这是一个挑剔的事情,我只是想知道如何编写扩展方法,将做到这一点(我有字面上不知道。)

B.something.GiveTo(A.somethingelse)

我不想使用AUTOMAPPER,因为它会由于B误差的一个超集A在这种情况下。

我不想问如何映射对象的属性。我在问怎样写一些能让我输入的东西A.propa.ExtensionMethodGiveTo(b.propa)

+1

您是否尝试过某些东西,如果是的话发布您的进行中的代码 –

+0

您想将A的相似属性的值复制到B? – Prajwal

+0

@Prajwal是的问题是这样说的。 –

回答

0

你可以得到类型为A的属性列表。 (How to get the list of properties of a class?

创建一个通用方法来键入AB。 (Generic Methods (C# Programming Guide)

然后比较属性类型和名称,如果两者都相同,则可以将其分配给传递的实例。

+0

你有没有读过这个问题。 – Worthy7

+0

我做到了。到目前为止,我坚持这个答案。如果这不符合您的预期,请编辑您的问题并多解释一下。请检查http://stackoverflow.com/help/how-to-ask – Prajwal