Entwickler-Ecke
Andere .NET-Sprachen - Delphi.Net Klasse nur für Assembly sichtbar machen?
winx - Mi 10.05.06 11:11
Titel: Delphi.Net Klasse nur für Assembly sichtbar machen?
Hi,
ist es mit irgendwie möglich, eine ganze Klasse nur für mein Assembly und nicht nach aussen sichtbar zu machen???
Danke,
winx
Christian S. - Mi 10.05.06 21:18
Meines Wissens kennt Delphi keine Sichtbarkeiten für Klassen. Nur für verschachtelte Klassen und auch dort nur die alten Delphi-Sichtbarkeiten.
Ziemlich gekrückte Lösung: Eine Dummyklasse, die richtigen Klassen als verschachtelte Klassen da rein. Sichtbarkeit "private". In Delphi heisst das ja dann, dass sie innerhalb der selben Unit sichtbar sind. Ist nicht dasselbe wie die Sichtbarkeit innerhalb der Assembly, aber besser weiß ich es im Moment in Delphi nicht :nixweiss:
winx - Do 11.05.06 08:20
danke, schade, dass Delphi da nicht auf .Net eingeht, wobei Assemblies und die darin enthaltenen Klassen,
ja eigentlich schon einem gewissen "Schutz" nach außen bedürfen...aber egal
kannst du mir ein Mini-Bsp posten, wie du das ganze meinst (mit diesen verschachtelten KLassen, etc)?
Danke,
winx
Christian S. - Do 11.05.06 12:20
Hi!
Ich habe gerade kein Delphi hier, daher mal so aus dem Gedächtnis:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| type TDummy = class private TInnerClass = class Foo : Integer; end; end; |
Die Klasse TDummy.TInnerClass dürfte damit nur noch in derselben Unit zu sehen sein.
Grüße
Christian
Robert_G - So 21.05.06 18:47
3 Möglichkeiten:
- Christians nested class
ILMERGE verwenden und so nachträglich die Sichtbarkeit reduzieren
- ClassLibs generell in einer "richtigen" .Net Sprache wie C# oder Chrome schreiben.
Hat dann auch den Vorteil, dass auch nicht-Delphianer deine Klassen freiwillig benutzen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!