myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » LightCore - StackOverflowException bei Verwendung des eigenen Typens als Parameter im Konstruktor
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

LightCore - StackOverflowException bei Verwendung des eigenen Typens als Parameter im Konstruktor

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
mouk
myCSharp.de-Mitglied

Dabei seit: 09.08.2010
Beiträge: 9


mouk ist offline

LightCore - StackOverflowException bei Verwendung des eigenen Typens als Parameter im Konstruktor

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

falls eine Klasse einen ctor besitzt, der eine Instanz der gleichen Klasse erwarten, wird beim Aufruf von Resolve eine StackOverflowException geschmißen. Dies geschieht auch wenn der jenige .ctor privat ist. Der Test dazu:

C#-Code:
[TestMethod]
public void NotRegister()
{
    var builder = new ContainerBuilder();
    var container = builder.Build();

    container.Resolve<Tut>();

}
public class Tut
{
    public Tut()
    {
    }
    private Tut(Tut tut)
    {
    }
}

Man braucht kein Assert, da StackOverflowException zerstörerisch ist. try catch bringt an der Stelle gar nichts.
17.08.2010 13:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Peter Bucher Peter Bucher ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2785.jpg


Dabei seit: 17.03.2005
Beiträge: 5.876
Entwicklungsumgebung: VS08
Herkunft: Zentralschweiz


Peter Bucher ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo mouk

Vielen Dank für deine Meldung.
Welches Verhalten würdest du denn erwarten?


Gruss Peter
17.08.2010 17:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
mouk
myCSharp.de-Mitglied

Dabei seit: 09.08.2010
Beiträge: 9

Themenstarter Thema begonnen von mouk

mouk ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Peter,

meier Meinung nach sind das hier zwei Punkte zu behandeln:

1 - Der Container soll keine privaten oder internen ctors aufrufen. Unter Umstände sind solche ctors nicht dafür konzipiert, von Außen aufgerufen zu werden und hinterlassen das Objekt in einem ungültigen Zustand.

2 - Zyklische Abhängigkeiten (direkte oder indirekte) müssen zu einer Exception führen, jedoch nicht zu StackOverflowException :)

Viele Grüße,

Mouk
17.08.2010 21:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Peter Bucher Peter Bucher ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2785.jpg


Dabei seit: 17.03.2005
Beiträge: 5.876
Entwicklungsumgebung: VS08
Herkunft: Zentralschweiz


Peter Bucher ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo mouk

1. Da hast du vollkommen Recht und leicht zu ändern.
2. An der Sache mit den zyklischen Abhängigkeiten muss ich mal rangehen. Priorität haben aber erst mal die anderen Bugs.


Gruss Peter
17.08.2010 23:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Peter Bucher Peter Bucher ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2785.jpg


Dabei seit: 17.03.2005
Beiträge: 5.876
Entwicklungsumgebung: VS08
Herkunft: Zentralschweiz


Peter Bucher ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo mouk

Der erste Bug ist gefixt und ins SVN Repository eingecheckt.
Wenn alle bekannte Bugs gefixt worden sind, gibt es einen neuen Release.

Fixed ReflectionActivator uses non public constructors bug.
see: ( LightCore - StackOverflowException bei Verwendung des eigenen Typens als Parameter im Konstruktor).

Beschreibung:
LightCore ruft nur noch öffentliche Konstruktoren ab.

Dem zweiten Problem widme ich mich Morgen.


Gruss Peter
19.08.2010 03:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Jahre.
Der letzte Beitrag ist älter als 7 Jahre.
Antwort erstellen


© Copyright 2003-2018 myCSharp.de-Team. Alle Rechte vorbehalten. 16.07.2018 16:29