Domanda

Qualcuno può pensare a una buona soluzione per ottenere il CIO in un'applicazione console?

Al momento stiamo solo usando una classe statica con il seguente metodo:

public static T Resolve<T>()
{
    return dependencyResolver.Resolve<T>();
}

Vorrei che l'esperienza fosse perfetta, ma non riesco a pensare a un modo per ottenere questo da un'applicazione console.

È stato utile?

Soluzione

Dovrai effettuare una chiamata di localizzatore di servizio (Resolve<T>()) da qualche parte. Il trucco è di toglierlo il più possibile. Per le applicazioni console questo bootstrap avviene nel metodo Main(). Fallo lì e minimizza quelle Risolve le chiamate altrove e sarai eccezionale. Per la maggior parte delle dipendenze, utilizzare l'iniezione del costruttore.

Altri suggerimenti

Le applicazioni console non hanno alcuna limitazione rispetto a un'applicazione web o form per IoC. Puoi usare qualsiasi tua scelta (Spring, Ninject, Unity, ecc.). Molti di questi sono configurabili con file XML all'esterno dell'applicazione console e alcuni come Ninjector richiedono una configurazione all'interno dell'applicazione.

Ho usato Spring.NET da un'app console senza problemi. Devi solo puntarlo sul tuo file di configurazione e collegherà tutte le dipendenze. Ciò che poi fai con quegli oggetti dipende ovviamente da ciò che l'app della tua console sta cercando di fare.

Acquista Microsoft Unity .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top