Articles of structuremap

Come liberare oggetti HybridHttpOrThreadLocalScoped in StructureMap?

Quando si eseguono attività in background in un servizio di Windows, ho utilizzato HybridHttpOrThreadLocalScoped per archiviare le istanze di NHibernate ISessions. Poiché all’interno di un server Windows non esiste un HTTPContext, mi chiedo se è sufficiente chiamare solo ReleaseAndDisposeAllHttpScopedObjects() per rilasciare l’istanza di ISession per quel thread?

structuremap – due implementazioni della stessa interfaccia

Ho una class di servizio con il seguente ctor: public class (IMessageService emailService, IMessageService smsService) { … } e due implementazioni di IMessageService (e-mail e sms). Come configuro il contenitore per risolvere correttamente questo costruttore? È qui che entrano le istanze nominate, o lo è per un altro scenario?

Errore StructureMap quando il controller non è valido

Sto usando la mappa delle strutture come la vetrina MVC di Rob Conery e ho un AdminController e quindi per arrivarci basta digitare: website/Admin/action tuttavia se mi manca scrivere il nome del controller, ho ricevuto l’errore seguente: Dettagli eccezione: System.ArgumentNullException: il valore non può essere nullo. Nome del parametro: chiave Si verifica l’errore su questa […]

Registrazione del metodo su Generic Factory con StructureMap

Sto cercando di utilizzare un metodo su una class factory generica nel mio registro structuremap. Normalmente, vorrei usare quanto segue quando registro un tipo usando un metodo factory: For().Use(x => new FooFactory().GetFoo()); E il seguente quando si registra un tipo generico: For(typeof(ISomeGeneric)).Use(typeof(SomeGeneric)); Come posso combinare i due e recuperare un tipo generico da un metodo […]

StructureMap CacheBy InstanceScope.HttpSession non funziona

Questo è il mio bootstrap di StructureMap: ObjectFactory.Initialize(factory => { //Business Conversation is per session factory.ForRequestedType(). TheDefaultIsConcreteType(). CacheBy(InstanceScope.HttpSession); //Session Factory is life time factory.ForRequestedType(). TheDefaultIsConcreteType(). CacheBy(InstanceScope.Singleton); }); var conversation = ObjectFactory.GetInstance(); Quando ho impostato il mio Conversation per utilizzare .CacheBy (InstanceScope.HttpSession), ottengo il riferimento all’object non trovato, tuttavia se non utilizzo CacheBy funziona correttamente. Questo […]

Usando Ninject (o qualche altro contenitore) Come posso scoprire il tipo che richiede il servizio?

Supponiamo che io abbia un’interfaccia per un servizio: public interface IFooService { void DoSomething(); } E un’implementazione concreta di quel servizio che è un generico: public class FooService : IFooService { public virtual void DoSomething() { } } E ho qualche altra class che ha bisogno di un’istanza di IFooService: public class Bar { private […]

Structuremap in Singleton che restituisce più istanze

Ho registrato 5 classi derivate per la stessa interfaccia usando istanze nominate. Tutte queste classi sono registrate come Singleton For().Singleton().Use().Named(“Derived1”); For().Singleton().Use().Named(“Derived2”); For().Singleton().Use().Named(“Derived3”); Esiste una class statica che risolve l’istanza in base all’input. Tuttavia ho osservato che ogni chiamata a ObjectFactory.GetInstance restituisce nuove istanze su ogni richiesta anziché su Singleton. Non ci sono thread nell’applicazione pure. […]

Problemi Configurazione di StructureMap.MVC5 per lavorare con Identity

Attualmente sto provando a riconfigurare StructureMap nella nostra applicazione dopo l’aggiornamento da una vecchia versione (2.6) che non è mai stata implementata correttamente in primo luogo. Sono nuovo nell’usare i contenitori DI per cominciare e sto trovando la documentazione per le versioni di StructureMap più difficili da trovare. Ho disinstallato la vecchia versione 2.6 di […]

StructureMap registra i tipi generici contro tutte le possibili implementazioni concrete

Ho il seguente: public interface ICommand { } public class AddUser : ICommand { public string Name { get; set; } public string Password { get; set; } } public interface ICommandHandler : IHandler where T : ICommand { void Execute(T command); } public class AddUserHandler : ICommandHandler { public void Execute(AddUser command) { Console.WriteLine(“{0}: […]

Iniezione delle dipendenze e produttività dello sviluppo

Astratto Negli ultimi mesi ho programmato un motore di gioco leggero basato su C # con astrazione API ed entity framework / componente / sistema di scripting. L’idea è di facilitare il processo di sviluppo del gioco in XNA, SlimDX e simili, fornendo un’architettura simile a quella del motore Unity. Sfide di design Come molti […]