将C#变量赋值给另一个变量,avar.GiveTo(something.else)
问题描述:
这可能看起来像一个愚蠢的问题,但我有理由想要将一个对象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)
答
你可以得到类型为A
的属性列表。 (How to get the list of properties of a class?)
创建一个通用方法来键入A
或B
。 (Generic Methods (C# Programming Guide))
然后比较属性类型和名称,如果两者都相同,则可以将其分配给传递的实例。
您是否尝试过某些东西,如果是的话发布您的进行中的代码 –
您想将A的相似属性的值复制到B? – Prajwal
@Prajwal是的问题是这样说的。 –