MarshalByRefObject.MemberwiseClone(Boolean) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.
protected:
MarshalByRefObject ^ MemberwiseClone(bool cloneIdentity);
protected MarshalByRefObject MemberwiseClone(bool cloneIdentity);
override this.MemberwiseClone : bool -> MarshalByRefObject
Protected Function MemberwiseClone (cloneIdentity As Boolean) As MarshalByRefObject
Parametrar
- cloneIdentity
- Boolean
false för att ta bort det aktuella MarshalByRefObject objektets identitet, vilket gör att objektet tilldelas en ny identitet när det konverteras över en fjärranslutningsgräns. Ett värde för false är vanligtvis lämpligt.
true för att kopiera det aktuella MarshalByRefObject objektets identitet till dess klon, vilket gör att fjärrklientanrop dirigeras till fjärrserverobjektet.
Returer
En ytlig kopia av det aktuella MarshalByRefObject objektet.
Kommentarer
Metoden MemberwiseClone(Boolean) skapar en ytlig kopia genom att skapa ett nytt MarshalByRefObject objekt och sedan kopiera de icke-statiska fälten i det aktuella MarshalByRefObject objektet till det nya objektet. Om ett fält är en värdetyp utförs en bit-för-bit-kopia av fältet. Om ett fält är en referenstyp kopieras referensen, men det refererade objektet är inte det. Därför refererar det ursprungliga objektet och dess klon till samma objekt.
Tänk dig till exempel ett MarshalByRefObject objekt med namnet X som refererar till objekten A och B. Objekt B refererar i sin tur till objekt C. En ytlig kopia av X skapar det nya objektet X2 som även refererar till objekten A och B. En djup kopia av X skapar däremot ett nytt objekt X2 som refererar till de nya objekten A2 och B2, som är kopior av A och B. B2 refererar i sin tur till det nya objektet C2, som är en kopia C. Använd en klass som implementerar ICloneable gränssnittet för att utföra en djup eller ytlig kopia av ett objekt.
Identiteten för ett MarshalByRefObject objekt definieras som fjärrserverobjektet som är målet för ett fjärrkommunikationsklientanrop. Som standard har den medlemsvis klonade av ett MarshalByRefObject objekt samma identitet som det ursprungliga objektet, vilket vanligtvis inte är rätt beteende för kloner av serverdelsobjekt som konverteras över en fjärranslutningsgräns till klientsidan. Ange false, vilket vanligtvis är lämpligt, för att ta bort klonens identitet och orsaka att en ny identitet tilldelas när klonen konverteras över en fjärrkommunikationsgräns, eller true för att få klonen att behålla identiteten för det ursprungliga MarshalByRefObject objektet. Metoden MemberwiseClone(Boolean) är avsedd att användas av utvecklare som implementerar fjärrserverobjekt.