.NET: Est-il une Classe de copier les propriétés d'une classe à l'autre
J'ai écrit une fonction qui copie les propriétés d'une classe à l'autre afin de faire une copie d'un objet.
Donc quelque chose comme
MyObject myObject = myOtherObject.MyCustomCopy(myObject)
où myObject et myOtherObject sont du même type. Je le fais par bascually faire
myObject.prop1 = myOtherObject.prop1
myObject.prop2 = myOtherObject.prop2
myObject.prop3 = myOtherObject.prop3
return myObject
Je suis sûr que dans le passé j'ai utilisé un .NET objet automatiquement l'a fait, par la réflexion, je suppose, mais ne m'en souviens pas ... et j'en imaginant qu'une telle méthode existe?
Oui, je suis conscient de l'auto mappeur, mais j'étais sûr (pas tellement maintenant) qu'il y a un .NET de l'objet qui fait le travail. Peut-être pas!
OriginalL'auteur Bob | 2010-11-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez prendre un coup d'oeil à AutoMapper.
OriginalL'auteur Darin Dimitrov
Vous devez utiliser AutoMapper il a été construit pour ce travail.
Vous pouvez cloner des objets de cette façon.
OriginalL'auteur Preet Sangha
OriginalL'auteur Andreas
Système.Objet.MemberwiseClone()
Oui, c'est une copie.
OriginalL'auteur bitbonk
Essayer de description dans ce lien:
.NET Réflexion - Copie des Propriétés de la Classe
OriginalL'auteur pyCoder
Ce code devrait fonctionner pour base les types de propriété, ne sais pas comment ça va aller pour quelque chose complexes (listes, tableaux, classes personnalisées). Devrait être un point de départ:
OriginalL'auteur mike
En termes très simples: Comme nous le savons, les Classes sont des types référence dans C#.NET c'est à dire lorsque nous créons un objet d'une classe comme
Alors C1(variable de Référence) est stocké sur la mémoire de la pile et de l'objet nouveau Client() est stocké sur le Tas.
Donc quand on copie une classe dans une autre classe qui est en fait votre question, vous pouvez faire quelque chose comme ci-dessous:
Faire ci-dessus, vous copiez l'C1 variable de Référence en C2 Mais pourquoi j'ai écrit sur la Pile et le Tas parce que l'utilisation C2 variable de référence, vous pouvez modifier les propriétés de l'objet étant à la fois C1 et C2 pointant vers un même objet dans le TAS.Quelque Chose Comme
Maintenant, si vous essayez d'accéder à
C1.Name
vous verrez qu'il est changé à "Mukesh".OriginalL'auteur Rakeshkumar Das