Entwickler-Ecke

Basistechnologien - [Einsteiger] Zugriffsebenen C# Verstädnissprobleme(Assembly)


miniC# - Fr 28.11.08 22:51
Titel: [Einsteiger] Zugriffsebenen C# Verstädnissprobleme(Assembly)
Guten Abend,

ich habe mal wieder eine kleine Frage : "Was versteht C# genau unter einem Assembly, bzw. wie ist dieser (dieses ?) definiert ?"

Ich habe mich natürlich wie immer zunächst bemüht diese Frage selbst zu lösen, jedoch bin ich nicht 100%ig fündig geworden, bzw unsicher, ob das selbst Zusammengereimte auch stimmt. Hintergrund ist der Wunsch die verscheidenen Zugriffseben in C# richtig zu verstehen. (Ich könnte jetzt hier noch einen Riesenpsalm anhängen, aber ich belasse es jetzt erstmal dabei).

Gruß und Dank,
miniC#


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Fr 28.11.2008 um 22:15


Christian S. - Fr 28.11.08 23:14

Am einfachsten lässt sich wohl sagen: Ein Assembly ist eine ausführbare Einheit, das ist in .NET entweder eine exe-Datei oder eine dll-Datei.

Alles, was die assembly-Sichtbarkeit hat ist für Klassen innerhalb dieses Assembly (sprich: Datei) sichtbar (Friend-Assemblies mal außen vor gelassen).


miniC# - So 30.11.08 11:57

hm, so hatte ich auch Wiki verstanden, bzw. MDSN. internal 'entfaltet' seine wirkung quasi erst beim erstellen ,
bzw. bei der wiederverwendung, projektintern ist es qausi gleichwertig mit public ?

gruß und dank,
miniC#


JüTho - So 30.11.08 12:05

user profile iconminiC# hat folgendes geschrieben Zum zitierten Posting springen:
projektintern ist es qausi gleichwertig mit public ?

Aufpassen mit den Formulierungen!

Wenn Du ein Projekt so verstehst wie die IDE, dann hast Du recht: Ein Projekt erzeugt eine Assembly. Innerhalb dieser Assembly hat internal die gleiche Wirkung wie public.

Wenn man Projekt wie im normalen Sprachgebrauch versteht, dann entspricht es eher einer Projektmappe (Solution) und kann aus mehreren Assemblies bestehen.

"entfaltet seine Wirkung" ist auch eine komische Formulierung. Immer dann, wenn eine Assembly inhaltlich genutzt wird, entfalten alle ihre Bestandteile (Klassen usw.) ihre Wirkung. Wann soll das sonst sein als beim Kompilieren und beim Ausführen?

Jürgen


jaenicke - So 30.11.08 12:06

Assemblyintern ist es das selbe, wenn man so will, ja. Innerhalb der Assembly ist der Zugriff nicht beschränkt, genauso wie bei public insgesamt.

Ich nehme mal an die Links dazu kennst du bereits:
http://msdn.microsoft.com/de-de/library/7c5ka91b(VS.80).aspx
http://msdn.microsoft.com/de-de/library/ba0a1yw2(VS.80).aspx


miniC# - So 30.11.08 14:32

user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconminiC# hat folgendes geschrieben Zum zitierten Posting springen:
projektintern ist es qausi gleichwertig mit public ?

Aufpassen mit den Formulierungen!

Wenn Du ein Projekt so verstehst wie die IDE, dann hast Du recht: Ein Projekt erzeugt eine Assembly. Innerhalb dieser Assembly hat internal die gleiche Wirkung wie public.

Wenn man Projekt wie im normalen Sprachgebrauch versteht, dann entspricht es eher einer Projektmappe (Solution) und kann aus mehreren Assemblies bestehen.

"entfaltet seine Wirkung" ist auch eine komische Formulierung. Immer dann, wenn eine Assembly inhaltlich genutzt wird, entfalten alle ihre Bestandteile (Klassen usw.) ihre Wirkung. Wann soll das sonst sein als beim Kompilieren und beim Ausführen?

Jürgen


asche auf mein haupt, bin recht unerfahren ;) mit *entfaltet seine wirkung* bezog ich mich auf die sichtbarkeit von interna variablen, die in einer .dll als verweis in einem projekt eingebunden werden.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Assemblyintern ist es das selbe, wenn man so will, ja. Innerhalb der Assembly ist der Zugriff nicht beschränkt, genauso wie bei public insgesamt.

Ich nehme mal an die Links dazu kennst du bereits:
http://msdn.microsoft.com/de-de/library/7c5ka91b(VS.80).aspx
http://msdn.microsoft.com/de-de/library/ba0a1yw2(VS.80).aspx


ja die links kenne / kannte ich, das problem war nur, dass mdsn nie richtig den begriff assembly erklärt, bzw ich die entsprechende stelle
dafür nicht finden konnte und sich auch andere anfängerleitfäden zu dem thema ulkigerweise ausschweigen. trotz der tatsache, dass sowohl
mdsn , als auch eben jede leitfäden diesen begriff gradezu inflationär benutzen :)

ulkigerweise half mir dann zumindest wiki im groben aus der patsche , aber die grundlegende unsicherheit blieb ;)