2009-06-13 6 views
0

bean id = "foo" class = "com.ems.samples.spring.Foo"
property name = "bar" ref = "bar"/
/bean
bean id = "bar" class =“ com.ems.samples.spring.Bar“
Gibt es ein Abhängigkeits-Injection-Framework für asp net mvc, das wie Spring Framework?

 public class Foo { 

    private Bar bar; 

    public String getMessage() { 

     return "Foo" + bar.getMessage(); 

    } 

    public void setBar(Bar bar) { 

     this.bar = bar; 

    } 

}

public class Bar {

public String getMessage() { 


     return "Bar"; 

    } 

}

+0

Warum würde es für MVC in erster Linie anders sein? DI ist ein generisches Muster, um Klassen zu entkoppeln – Perpetualcoder

+0

ich weiß nicht über DI. – tobias

Antwort

0

Es gibt Spring.net für den Anfang, aber ich habe keine Ahnung, wie es mit asp.net Mvc spielt

+0

danke, aber ich weiß es, ich brauche für asp net mvc. – tobias

+0

Spring.NET funktioniert auf ASP.NET MVC ... weil es gut .NET ist. – Talljoe

+0

oh ja spring.net Ich sah nur Frühlingswort zuerst. – tobias

2

Kasse Munq.DI unter munq.codeplex.com. Es ist ein einfacher, schneller DI-Container mit Lifetime-Managern speziell für die Web-Entwicklung. Das Objekt kann eine Lebensdauer von Request, Session, Cache und Container haben. Darüber hinaus gibt es eine MunqControllerFactory und ein Beispiel für ASP.NET MVC. Vollständige Quelle enthalten.

+0

Ich denke, dass alle DI-Frameworks schlechte Leistung bietet. Ich kann manuell injizieren, weil die Frameworks für lazy Code kompiliert werden :) – tobias

+0

Nicht alle DI haben schlechte Leistung, aber einige tun. Schauen Sie sich Daniel Cazulinos Blogbeiträge auf Funq http://www.clariusconsulting.net/blogs/kzu/archive/2009/04/17/141951.aspx an. Einige interessante Leistungsinformationen. Munq ist etwas schneller als Funq aufgrund der einfacheren Resolve-Funktionalität (keine Parameter). Richtig verwendet, kann ein IOC die Klassenkonstruktion vollständig von den konkreten Instanzen der Abhängigkeiten der Klasse entkoppeln. Dies ermöglicht Ihnen, Stubs oder alternative Implementierungen für Tests oder andere Umgebungen zu injizieren. – Matthew

Verwandte Themen